【问题标题】:wsimport generate a client with cookieswsimport 使用 cookie 生成客户端
【发布时间】:2012-11-13 14:01:36
【问题描述】:

我正在使用 maven 中 jaxws-maven-plugin 中的 wsimport 为 SOAP 1.2 服务生成客户端,并执行以下操作:

<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.2</version>
<executions>
    <execution>
        <goals>
            <goal>wsimport</goal>
        </goals>
        <configuration>
            <sourceDestDir>${project.basedir}/src/main/java</sourceDestDir>
            <wsdlUrls>
                <wsdlUrl>${webservice.url}</wsdlUrl>
            </wsdlUrls>
            <extension>true</extension>
        </configuration>
    </execution>

客户端第一次调用代理时,负载均衡器会生成一个 cookie 并将其发回。客户端应该将其发回,以便负载均衡器知道在哪里(哪个服务器)专用于特定客户端(想法是客户端第一次获得服务器并且 cookie 标识服务器,然后负载均衡器将客户端发送到每次调用都使用同一台服务器)

现在,有没有办法告诉插件自动启用 cookie 处理?

【问题讨论】:

    标签: java jax-ws maven-plugin wsimport


    【解决方案1】:

    是的,您必须设置属性SESSION_MAINTAIN_PROPERTY。

    名为 HelloService 的服务示例:

    Hello port = new HelloService().getHelloPort();
    ((BindingProvider)port).getRequestContext().put(
        BindingProvider.SESSION_MAINTAIN_PROPERTY,true);
    

    设置SESSION_MAINTAIN_PROPERTY 告诉JAX-WS 接受来自服务器的cookie 并在所有后续调用中将它们发回——就像浏览器一样。这可用于维护会话。

    来源:Rama Pulavarthi - Maintaining Session With JAX-WS。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多