0
我使用Pax考试在卡拉夫测试CXF REST服务。测试几乎总是在我的机器上顺利运行。在Jenkins中运行时(在Maven构建下),它们通常会失败。失败似乎是随机的和不可预测的。我在失败期间收到的错误涉及尝试运行Karaf命令。该命令是由下面的代码片段执行:Pax考试考试偶尔失败
def byteArrayOutputStream = new ByteArrayOutputStream();
def printStream = new PrintStream(byteArrayOutputStream);
CommandProcessor commandProcessor = getOsgiService(CommandProcessor.class);
CommandSession commandSession = commandProcessor.createSession(System.in, printStream, System.err);
commandSession.put("APPLICATION", System.getProperty("karaf.name", "root"));
commandSession.put("USER", "karaf");
commandSession.execute(command)
这些都是我想在测试中设置方法来执行命令:
'features:addurl mvn:org.apache.cxf.karaf/apache-cxf/2.7.2/xml/features', 'features:install http', 'features:install cxf'
这是个例外:
org.apache.felix.gogo.runtime.CommandNotFoundException: Command not found: features:addurl
显然有时卡拉夫不能正确启动,无法处理这些命令。像这样的错误在不同的卡拉夫命令的不同测试中随机发生。在我的机器上,如果机器处于负载下,它们更有可能发生。
什么可能导致卡拉夫以这种方式表现?如何防止这些错误发生?
谢谢
迈克尔
我在pax-exam-karaf功能安装程序中遇到了问题,所以我使用pax-exam-karaf进行手动功能安装。您是否在说我可以等待功能服务并使用该服务安装新功能,而不是使用CommandProcessor服务执行命令? – jdgilday 2013-03-15 12:51:20
是的,这也可以实现:) – 2013-03-15 13:26:38
你与pax-exam-karaf功能安装程序有什么样的问题,它通常像一个魅力。卡拉夫本身也在测试它。 – 2013-03-15 13:27:19