【问题标题】:spring web services configuration in web.xml?web.xml 中的 Spring Web 服务配置?
【发布时间】:2013-11-07 14:34:02
【问题描述】:

我正在使用 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 生成概念。

动态 WSDL 生成真的需要 transformWsdlLocations 吗?

谢谢!

【问题讨论】:

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


    【解决方案1】:

    鉴于删除该值并重新部署您的应用程序只需要几分钟,我建议您这样做,看看会发生什么。只需尝试通过“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,那么最好包含它。

    【讨论】:

    • 史蒂夫,非常感谢您的回复。在 spring-ws 中,我们可以使用动态 wsdl 或静态 wsdl 方法。我认为如果我们使用动态 wsdl 方法,那么这是有道理的。如果我采用静态 wsdl 方法,那么 transformWsdlLocations 仍然有用吗?请帮我。谢谢!
    • 它也适用于静态 WSDL - 它会根据使用的 URL 动态替换 soap:address。
    • 史蒂夫,以下评论来自您的回答。 “transformWsdlLocations 确保这是基于用于访问服务的任何 URL 动态生成的。”在这里我很困惑。这是否意味着考虑我部署了我的服务 www.domainone.com/service/one.wsdl 然后如果我尝试以 www.domaintwo/service/one.wsdl 的身份访问该服务,那么仍然会处理请求吗?谢谢!
    • 只要第二个 URL 到达同一个地方。它假定 WSDL 将托管在与服务本身相同的服务器上。所以它返回的地址应该是客户端用来到达那里的任何 URL。
    • btw - 这是因为理论上,您可以将 WSDL 托管在与您的服务不同的服务器上。在这种情况下,需要一个静态soap:address。但是,如果您将 WSDL 与您的工作服务托管在同一台机器上,那么动态soap:address 往往会让生活更轻松。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 2012-11-13
    相关资源
    最近更新 更多