2013-02-27 64 views
1

我有一个使用PaxExam成功运行的集成测试套件。我使用Maven运行测试。测试的目的是测试通过在Karaf中运行的Apache CXF实现的REST Web服务。如何更改PaxExam端口

测试在我的机器上运行,但由于端口冲突在Jenkins构建期间失败。 CXF使用端口8181,这似乎是默认的Jetty端口。有没有办法在测试套件中以声明方式或编程方式更改此端口?

我尝试使用多种这里列出PaxExam选项:

http://team.ops4j.org/wiki/display/PAXEXAM3/Configuration+Options,但无济于事。

谢谢。

回答

0

你使用大同考试,Karaf或者你使用纯大同考试, 如果它是大同 - 考试 - 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或者看看在PAX-网itests在Pax-Web Integration Tests

+0

阿希姆,T要求你回复。事实上,使用第一个选项解决了CXF端口冲突。我仍然收到此消息(尽管它似乎并未影响测试性能): 2013-02-28 09:35:04,838 |警告|离子(3)-127.0.0.1 | NIOSocketConnectorWrapper | ternal.NIOSocketConnectorWrapper 45 | 99 - org.ops4j.pax.web.pax-web-jetty - 1.1.3 |端口8080上的连接无法打开。异常:java.net.BindException:地址已在使用原因:地址已被使用 任何想法如何更改Jetty使用的端口8080? – 2013-02-28 14:57:55

+0

取决于您使用的是Karaf/Pax-Web的版本,如果它是2.2f版本的Karaf,则忽略它,因为这是由于karaf的ect文件夹中的jetty.xml也被解释,一个通常会先尝试使用8080端口。这是使用码头服务器的方式,首先需要启动码头服务器,然后将其配置为使用正确的端口。这可能是造成这种情况的主要原因。正如我所说,试着忽略它:-) – 2013-02-28 15:32:41