3

我已经使用 spring-ws 生成了 web 服务。我已经在 tomcat 中部署了我的应用程序并且部署没有任何错误。我无法找到 WSDL 的路径。请帮助我如何形成 wsdl 的路径。

我的 web.xml:

 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>listener><servlet><servlet-name>spring-ws</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><servlet-mapping><servlet-name>sprig-ws</servlet-name><url-pattern>/</url-pattern></servlet-mapping> <context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-ws--servlet.xml</param-value></context-param>  

spring-ws-servlet.xml

<bean class="org.springframework.ws.server.endpoint.adapter.GenericMarshallingMethodEndpointAdapter">
      <constructor-arg ref="marshaller" />
</bean>

<bean id="marshaller"
    class="org.springframework.oxm.xmlbeans.XmlBeansMarshaller">
</bean> 
 <bean id="loginEndpoint" class="com.cloudexult.endpoint.LoginEndpoint">
</bean>
 <sws:dynamic-wsdl id="loginmanager" portTypeName="LoginService" locationUri="/loginService/"
                  targetNamespace="http://www.example.org/Login/definitions">
    <sws:xsd location="/WEB-INF/schema/Login.xsd"/>
</sws:dynamic-wsdl>
4

2 回答 2

7

您的 wsdl 应该可以通过以下方式访问:

http://<servername>:<port>/<context-path>/loginService.wsdl

你能试试这个并告诉我们它是否不起作用吗?

于 2013-07-04T12:48:43.950 回答
3

如果你真的卡住了,启用 log4j 来打印 spring 调试日志会对你有所帮助。通过以下方式启用 spring 的调试日志记录log4j.properties

log4j.category.org.springframework=DEBUG

完成后,重新启动容器,在 DEBUG 日志中查找以下内容:

20:51:16,718 DEBUG main http.MessageDispatcherServlet:469 - Published [org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition@61bf8785] as wsdl11Definition.wsdl

上面只是一个示例,但是日志的最后一个组件将为您提供 WSDL 的 URI。

于 2014-12-07T15:32:15.387 回答