web.xml中的spring web服务配置?

时间:2013-11-07 14:34:02

标签: java spring web-services spring-mvc wsdl

我使用的是spring-ws,我在web.xml中有以下配置

<servlet>
        <servlet-name>spring-ws</servlet-name>
        <servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
        <init-param>
            <param-name>**transformWsdlLocations**</param-name>
            <param-value>true</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring-ws</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

我已配置 transformWsdlLocations 。请在这里解释一下transformWsdlLocations的用法。我正在使用动态WSDL生成概念。

                                        

transformWsdlLocations是否真的需要动态WSDL生成?

谢谢!

1 个答案:

答案 0 :(得分:4)

鉴于删除该值并重新部署您的应用程序只需要几分钟,我建议您这样做,看看会发生什么。只是尝试通过“localhost”和“127.0.0.1”访问WSDL,看看有什么不同。

但是我会解释你应该在这里看到什么......

当您阅读生成的WSDL时,您应该发现其中有URL。

即。您可以使用本地计算机:

http://localhost:8080/myservice.wsdl

但是当你上线时,你的服务可能是:

http://www.<yourdomain>.com/myservice.wsdl

您不希望从您的生产域下载WSDL的人员使用“localhost:8080”填充这些值。同样,如果WSDL中返回的URL是针对您的生产服务器的,则无法正确测试您的服务。或者您可能有多个具有不同URL的生产服务。

transformWsdlLocations可确保根据用于访问服务的任何URL动态生成此内容。

动态WSDL生成不需要它,但我总是发现它非常有用。但是,默认情况下不启用它,因此如果您确实希望动态生成这些URL,则最好包含它。