Apache CXF和servlet-mapping

时间:2012-12-20 17:50:28

标签: servlets cxf

我正在尝试学习Apache CXF的一些基础知识,并且通常是关于servlet映射的。 我在这里修改了代码:

https://subversion.assembla.com/svn/pablo-examples/spring-cxf-example

我在web.xml

中配置了如下的CXFServlet映射
<servlet-mapping>
    <servlet-name>CXFServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>

在spring xml(webservice-definition-beans.xml)中 我已经生成了以下服务

<jaxws:endpoint id="helloWorld" implementor="#helloWorldService" address="/services/HelloWorld" />

我希望通过此网址

访问服务wsdl
http://localhost:8080/services/HelloWorld?wsdl

但它是

http://localhost:8080/services/services/HelloWorld?wsdl

我在这里有什么不对吗?

servlet-mapping是否只显示哪个url模式映射到要处理的servlet?

在这里它似乎也改变了背景。

1 个答案:

答案 0 :(得分:4)

JAX-WS路径与servlet映射有关。如果你想要

http://localhost:8080/services/HelloWorld?wsdl

使用

<servlet-mapping>
    <servlet-name>CXFServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

<jaxws:endpoint id="helloWorld" implementor="#helloWorldService" address="/services/HelloWorld" />

<servlet-mapping>
    <servlet-name>CXFServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>

<jaxws:endpoint id="helloWorld" implementor="#helloWorldService" address="/HelloWorld" />