Я тестирую сервисы CXF REST в Karaf, используя Pax Exam. На моей машине тесты почти всегда проходят без сучка и задоринки. При запуске в Jenkins (под сборкой Maven) они обычно терпят неудачу. Неудачи кажутся случайными и непредсказуемыми. Ошибка, которую я получаю во время сбоя, связана с попыткой запустить команду Karaf. Команды выполняются следующим фрагментом:
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
Видимо периодически Karaf запускается некорректно и не может обработать эти команды. Подобная ошибка возникает случайным образом в разных тестах на разных командах Karaf. На моей машине они чаще случаются, если машина находится под нагрузкой.
Что может заставить Карафа вести себя таким образом? Как предотвратить появление этих ошибок?
Спасибо,
Майкл