Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java web.xml中的SpringWeb服务配置?_Java_Spring_Web Services_Spring Mvc_Wsdl - Fatal编程技术网

Java web.xml中的SpringWeb服务配置?

Java web.xml中的SpringWeb服务配置?,java,spring,web-services,spring-mvc,wsdl,Java,Spring,Web Services,Spring Mvc,Wsdl,我正在使用SpringWS,我的web.xml中有以下配置 <servlet> <servlet-name>spring-ws</servlet-name> <servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class> <init-param>

我正在使用SpringWS,我的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>

春季天气预报
org.springframework.ws.transport.http.MessageDispatcherServlet
**转换wsdllocations**
真的
春季天气预报
/*
这里我配置了transformWsdlLocations。请在此向我解释transformWsdlLocations的用法。我正在使用动态WSDL生成概念

动态WSDL生成确实需要transformWsdlLocations吗


谢谢

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

不过我会解释你应该在这里看到什么

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

i、 e.从您可能使用的本地计算机:

http://localhost:8080/myservice.wsdl
但当您上线时,您的服务可能是:

http://www.<yourdomain>.com/myservice.wsdl
http://www..com/myservice.wsdl
您不希望从您的生产域下载WSDL的人将这些值填充为“localhost:8080”。同样,如果WSDL中返回的URL是针对生产服务器的,则无法正确测试服务。或者,您可能有多个具有不同URL的生产服务

transformWsdlLocations确保根据用于访问服务的任何URL动态生成该URL


动态WSDL生成不需要它,但我始终发现它非常有用。但是,它在默认情况下不启用,因此如果您确实希望动态生成这些URL,那么最好将其包括在内。

Steve,非常感谢您的回复。在SpringWS中,我们可以使用动态wsdl或静态wsdl方法。我认为,如果我们使用动态wsdl方法,那么它是有意义的。如果我选择静态wsdl方法,那么transformWsdlLocations是否仍然有用?请帮帮我。谢谢它也适用于静态WSDL——它会根据所使用的URL动态地替换soap:address。“transformWsdlLocations确保根据访问服务所使用的URL动态生成此信息。”我对此感到困惑。是否意味着我部署了我的服务www. DimaNeN.COM/Serve/ONE.WSDL,然后如果我尝试访问服务作为www. DunnToo/Serve/On.WSDL,那么请求仍然被处理吗?谢谢只要第二个URL到达相同的位置。它假定WSDL将与服务本身托管在同一台服务器上。因此,它返回的地址应该是客户端用来到达那里的URL。顺便说一句,这是因为理论上,您可以将WSDL托管在与服务不同的服务器上。在这种情况下,需要一个静态soap:address。但是,如果您将WSDL托管在与工作服务相同的机器上,那么动态soap:address会使您的工作更轻松。