我正在尝试学习 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>
Run Code Online (Sandbox Code Playgroud)
在 spring xml(webservice-definition-beans.xml) 中,我生成了如下服务
<jaxws:endpoint id="helloWorld" implementor="#helloWorldService" address="/services/HelloWorld" />
Run Code Online (Sandbox Code Playgroud)
我希望通过这个 url 访问服务 wsdl
http://localhost:8080/services/HelloWorld?wsdl
Run Code Online (Sandbox Code Playgroud)
但它是
http://localhost:8080/services/services/HelloWorld?wsdl
Run Code Online (Sandbox Code Playgroud)
我知道这里有什么问题吗?
servlet-mapping 不是只显示哪个 url 模式映射到哪个 servlet 来处理吗?
在这里,它似乎也改变了上下文。
JAX-WS 路径与 servlet 映射相关。如果你想
http://localhost:8080/services/HelloWorld?wsdl
Run Code Online (Sandbox Code Playgroud)
使用
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<jaxws:endpoint id="helloWorld" implementor="#helloWorldService" address="/services/HelloWorld" />
Run Code Online (Sandbox Code Playgroud)
或者
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<jaxws:endpoint id="helloWorld" implementor="#helloWorldService" address="/HelloWorld" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5487 次 |
最近记录: |