如何将java.util.Collections$UnmodifiableRandomAccessList转换为Collections.singletonList?在尝试存储两个服务之间的会话时,我发现了这一点,但我无法计算出两者之间的步骤。首先获取我需要设置的cookie信息:
Map<String, Collections> headerInfo = (Map<String, Collections>)
((BindingProvider) port).getResponseContext()
.get(MessageContext.HTTP_RESPONSE_HEADERS);现在我可以获得所需的cookie信息;如果我执行
System.out.println(headerInfo.get("Set-Cookie"));我得到了像这样的东西
Set-Cookie=[PHPSESSID=rpsnc2g7o4ltbr6l9qus177p14; path=/];现在我只需要这样做:
((BindingProvider) port2).getRequestContext()
.put(MessageContext.HTTP_REQUEST_HEADERS,
Collections.singletonMap("Cookie", Collections.singletonList(cookieValue)));但是我不知道如何从headerInfo.get("Set-Cookie")转到:cookieValue
这是我在Q中找到的问题解决方案的第一部分:
JAX-WS client: maintain session/cookies across multiple services
(这可能也解释了我的问题)
发布于 2013-12-09 17:38:48
解决方案是通过转换到正确的类/接口来使用原始列表:
List<String>而不是:
Collections起作用了。
Map<String, List<String>> headers = (Map<String, List<String>>)((BindingProvider) authPort).getResponseContext().get(MessageContext.HTTP_RESPONSE_HEADERS);
List<String> setCookie = (List<String>) headers.get("Set-Cookie");
((BindingProvider) servicePort).getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS,Collections.singletonMap("Cookie", setCookie ));https://stackoverflow.com/questions/20462819
复制相似问题