1

我正在使用 in maven 为 SOAP 1.2 服务生成客户端,wsimport执行jaxws-maven-plugin如下:

<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 处理?

4

1 回答 1

3

是的,您必须设置属性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 - 使用 JAX-WS 维护会话

于 2012-12-06T17:01:51.067 回答