Web サービスで WebServiceContext とメソッド getMessageContext() を使用して、保存用の HttpSession オブジェクトを取得し、セッション値を取得できますか? 次のような Web サービスで HttpSession を使用しようとしていました。
@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public class DummyWs {
@Resource
private WebServiceContext wsContext;
@WebMethod(operationName = "sayHello")
public String sayHello(@WebParam(name = "name") String name) {
return "hello " + name;
}
@WebMethod(operationName="setValue")
public void setValue(@WebParam(name = "value") String newValue) {
MessageContext mc = wsContext.getMessageContext();
HttpSession session = ((javax.servlet.http.HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST)).getSession();
session.setAttribute("value", newValue);
}
@WebMethod(operationName="getValue")
public String getValue() {
MessageContext mc = wsContext.getMessageContext();
HttpSession session = ((javax.servlet.http.HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST)).getSession();
return (String)session.getValue("value");
}
}
@Stateful アノテーションを使用する他の例を見ましたが、これは使用しません。@Stateful アノテーションを使用する必要がありますか? この注釈を使用しないとどうなりますか?