2013-02-27 2 views
1

У меня есть успешно работающий набор интеграционных тестов с использованием PaxExam. Я запускаю тесты с помощью Maven. Целью тестов является тестирование веб-сервисов REST, реализованных через Apache CXF, работающий в Karaf.Как сменить порт PaxExam

Тесты выполняются на моей машине, но сбой во время сборки Jenkins из-за конфликта портов. CXF использует порт 8181, который, по-видимому, является портом Jetty по умолчанию. Есть ли способ изменить этот порт декларативно или программно в наборе тестов?

Я попытался использовать различные варианты PaxExam перечисленных здесь:

http://team.ops4j.org/wiki/display/PAXEXAM3/Configuration+Options, но безрезультатно.

спасибо.

ответ

0

Используете ли вы Pax-экзамен-Karaf или вы используете простой Pax-экзамен, если это Pax-экзамен-Karaf использовать следующие для вашей конфигурации:

KarafDistributionOption.editConfigurationFilePut("etc/org.ops4j.pax.web.cfg", 
"org.osgi.service.http.port", "alternative-port"), 

, если это ясно Pax-экзамен:

systemProperty("org.osgi.service.http.port").value("8181") 

Вы также можете взглянуть на то, как Karaf делает это регрессивное тестирование на Karaf Regression Test или посмотрите на Пакс-веб itests в Pax-Web Integration Tests

+0

Ахим, т приветствую вас за ваш ответ. Действительно, использование первого варианта разрешило конфликт портов CXF. Я все еще получаю это сообщение (хотя это, похоже, не влияет на производительность теста): 2013-02-28 09: 35: 04,838 | WARN | ион (3) -127,0,0,1 | NIOSocketConnectorWrapper | ternal.NIOSocketConnectorWrapper 45 | 99 - org.ops4j.pax.web.pax-web-jetty - 1.1.3 | Подключение к порту 8080 невозможно открыть. Исключение: java.net.BindException: Адрес уже используется Причина: Адрес уже используется Любая идея, как изменить порт 8080, используемый Jetty? –

+0

зависит от того, какую версию Karaf/Pax-Web вы используете, если это версия 2.2.x от Karaf просто игнорирует ее, поскольку это связано с тем, что jetty.xml в папке ect karaf также интерпретируется, и это один обычно пытается использовать порт 8080. Именно так используется сервер причалов, сначала нужно запустить сервер причала, и после этого он настроен на использование правильных портов. Вероятно, это основная причина этого. Как я уже сказал, постарайтесь игнорировать его :-) –

Смежные вопросы