2013-02-27 115 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