2

私は Apache CXF のいくつかの基本と、一般的にサーブレット マッピングについて学習しようとしています。ここでコードを変更しました:

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>

春の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 パターンがどのサーブレットにマップされて処理されるかを示すだけではありませんか?

ここで文脈も変わるようです。

4

1 に答える 1

6

JAX-WS パスは、サーブレット マッピングに対して相対的です。お望みならば

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-23T14:30:31.867 に答える