0

在运行完 CXF 示例后,我启动了一个简单的 Web 服务并且运行良好。但是,我想将它与 servlet 容器内的 Spring Web 应用程序集成。更新 servlet.xml 配置文件后:

<jaxws:endpoint id="HelloWorldService"
implementor="path.to.webservice.HelloWorldImpl"
endpointName="e:HelloEndpoint"
serviceName="s:HelloService"
address="/HelloService"
xmlns:e="http://service.jaxws.cxf.apache.org/endpoint"
xmlns:s="http://service.jaxws.cxf.apache.org/service"/>

和 web.xml:

<servlet>
    <servlet-name>CXFServlet</servlet-name>
    <servlet-class>
        org.apache.cxf.transport.servlet.CXFServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

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

我能够在 servlet 中部署它,但是 Spring 服务的 WSDL 是非常错误的,即使 Java 接口和实现文件是相同的。请参阅下面的 Eclipse WSDL 大纲:

替代文字 http://img171.imageshack.us/i/correcty.jpg/替代文字 http://img190.imageshack.us/i/wrongia.jpg/

为什么会从相同的 .java 文件生成如此不同的 WSDL,我怎样才能让它在 servlet 中工作?提前致谢。

4

1 回答 1

0

WSDL 和模式取决于 CXF 中前端和数据绑定的选择。如果你的其他环境不是JAX-WS+JAXB,同样的版本,你会得到非常不同的结果。即使它只是这些的非 CXF 版本,您也可以期待外观上不同的结果。

于 2009-11-14T12:35:36.150 回答