【问题标题】:Apache CXF and servlet-mappingApache CXF 和 servlet 映射
【发布时间】:2012-12-20 17:50:28
【问题描述】:

我正在尝试学习 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" />

我希望通过这个 url 访问服务 wsdl

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

但它是

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

我知道这里有什么问题吗?

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

在这里,它似乎也改变了上下文。

【问题讨论】:

    标签: servlets cxf


    【解决方案1】:

    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" />
    

    【讨论】:

      猜你喜欢
      • 2012-12-21
      • 2010-11-08
      • 2016-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 2011-11-01
      • 2013-10-11
      相关资源
      最近更新 更多