2012-02-14 139 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