Apache CXF和servlet

编程入门 行业动态 更新时间:2024-10-23 19:31:04
Apache CXF和servlet-mapping(Apache CXF and servlet-mapping)

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

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

I am trying to learn some basics of Apache CXF and generally about servlet-mappings. and I have modified the code here:

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

I have configured CXFServlet mapping as below in web.xml

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

in the spring xml(webservice-definition-beans.xml) I have generated the service as below

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

I was expecting to access to the service wsdl via this url

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

but it is

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

Do I know something wrong here ?

Does not servlet-mapping only show which url pattern maps to which servlet to process ?

In here It seems it also changes context.

最满意答案

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

The JAX-WS path is relative to servlet mapping. If you want

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

use either

<servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <jaxws:endpoint id="helloWorld" implementor="#helloWorldService" address="/services/HelloWorld" />

or

<servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <jaxws:endpoint id="helloWorld" implementor="#helloWorldService" address="/HelloWorld" />

更多推荐

本文发布于:2023-08-01 20:01:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1363667.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Apache   CXF   servlet

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!