2013-06-23 61 views
0

我需要編寫一個內置Jetty或Tomcat的服務器,它能夠以編程方式使用Apache CXF將Web服務公開爲POJO,即不需要將其部署爲.war文件。這與CXF可能嗎?作爲Web服務暴露POJO與CXF沒有部署爲WAR文件

謝謝。

+0

是使用Jetty還是Tomcat硬性要求或者是任何其他嵌入式服務器好嗎?如果是這樣,你可以簡單地使用Java附帶的服務器。 – joergl

+0

那麼我想Jetty或Tomcat成爲servlet引擎。但我也開放其他選項。基本上需要將POJO作爲一種Web服務公開,只需註釋即可。 – Jeewantha

回答

2

Java附帶一個您可以使用的嵌入式服務器。用@WebService註釋您的POJO就足夠了,您不需要額外的包裝。簡單地創建Web服務的實例和部署使用Endpoint.publish()

YourPojo service = new YourPojo(); // the class annotated with @WebService 
Endpoint.publish("http://localhost:2000/serviceAddress", service); 

嵌入式服務器將是罰款,簡單的場景,只是知道,這將任意負載下的規模。

現在,如果您希望將CXF用於此服務,您只需將CXF庫放入其構建路徑即可。部署機制Endpoint類保持完全相同。這是解釋這個例子的a tutorial from CXF。 CXF自動似乎用Jetty替換默認服務器。至少這是CXF在啓動時打印到我的控制檯的內容:

Jun 24, 2013 1:36:29 PM org.eclipse.jetty.server.Server doStart 
INFO: jetty-8.1.7.v20120910 
Jun 24, 2013 1:36:29 PM org.eclipse.jetty.server.AbstractConnector doStart 
INFO: Started [email protected]:2000