2012-02-14 134 views
2

獲取碼頭比如我創建帶彈簧+碼頭+ CXF Web服務使用下列內容:和Spring Web服務

<import resource="classpath:META-INF/cxf/cxf.xml" /> 
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> 
<jaxws:endpoint id="helloWorld" implementor="com.test.EndpointImp" address="http://localhost:9002/test"> 
</jaxws:endpoint> 

這一切都按預期工作和非常好。現在我需要「服務」一些servlet。無論如何,我可以到達爲此創建的碼頭服務器實例,以便我可以添加servlet?我不想在另一個端口上爲我需要使用的servlet創建另一個Jetty實例。

任何信息將不勝感激。

+0

我認爲[我的文章](http://stackoverflow.com/a/8866816/267197)與您的問題有關。特別是關注[本文](http://cxf.apache.org/docs/servlet-transport.html),它顯示瞭如何擁有多個servlet。 – 2012-02-18 19:03:34

+0

這是完美的。發佈答案,以便我可以將其標記爲正確! – Paul 2012-02-21 09:27:42

回答

1

您正在尋找的解決方案在this article中描述。關鍵點(我在my post中也提到過)將在您的web.xml中使用org.apache.cxf.transport.servlet.CXFServlet,不要忘記導入META-INF/cxf/cxf-servlet.xml(您這樣做)並且還使用相對的address="/myservice"屬性。在這種情況下,CXF例程不會啓動嵌入式Jetty,而是使用此Servlet處理入站請求。

+1

絕對是最好的方式去做 – 2012-02-22 01:06:40

-1

當然,webapp可以同時處理一些WebServices和servlet。

我想你的web服務是在一個web應用程序。 因此,您應該有一個web.xml(在WEB-INF中)。您可以在此web.xml中添加您的servlet聲明。

Jetty應該啓動你的web應用程序。

如果你不給我們更多關於你項目的細節(基於Maven或者你沒有發佈Jetty等),我們不能幫助你。

+0

我會很樂意給你更多的細節,你想知道什麼?多數民衆贊成在我的春天配置文件。我的應用程序以獨立方式啓動,而不是在Web容器中啓動。 – Paul 2012-02-17 20:55:06