【问题标题】:How to locate path of generated wsdl in Spring-ws如何在 Spring-ws 中定位生成的 wsdl 的路径
【发布时间】:2013-07-01 18:49:23
【问题描述】:

我已经使用 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>

【问题讨论】:

    标签: spring web-services spring-ws


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回复。我已经尝试过这个 URL 并且它有效 http://://loginmanager.wsdl 。 中指定的“id”名称是 wsdl 生成的名称。
    • 本例中的 是什么?我也遇到了同样的问题。
    • 将是您的 Web 应用程序的上下文路径,例如如果您通过 myserver:8080/myapp 调用您的 webapp,“myapp”将是上下文路径。
    • 我看到 ws 调用的 servlet 映射在您的代码中定义为 /。而spring-ws定义中的location-uri定义为locationUri="/loginService/"。理想情况下,两者都应该具有相同的值,然后可以像这样访问 wsdl
    【解决方案2】:

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

    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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 2011-10-13
      相关资源
      最近更新 更多