1

我有一个 Java Web 服务,它应该jsessionid从这样的客户端打印出一个传递的(存储在 JSESSIONID cookie 中)。稍后应该可以从此会话访问属性:

@Resource
private WebServiceContext context;
@WebMethod(operationName = "getContent")
public ArrayList getContent(@WebParam(name = "in") {
   MessageContext mc = context.getMessageContext();
   HttpSession session =  ((javax.servlet.http.HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST)).getSession();
   System.out.println(session.getId());
}

现在的问题是如何将生成的jsessionidcookie 值传递给这个以 PHP 作为客户端语言的 Java Web 服务。以下 PHP 代码段不起作用。Java Web 服务总是生成一个新的会话 id:

$SOAPClient = new SoapClient($wsdl, $options);
$SOAPClient->__setCookie("JSESSIONID", "4BFD7FC9C55472BA6BCB1863F266F31C");
$result = $SOAPClient->getContent(array("in" => "all"));

当然,我可以将jsessionid值作为 Web 服务参数传递,但我想使用 Java 会话中存储的属性。

将是如何使用 JSESSIONID 手动加载 Java 会话?使用传递的 Web 服务参数加载会话jessionid以访问属性的可能解决方案?

4

0 回答 0