Hi,

You should probably add a jettey bean configuration and enable sessions there, 
if you use Jetty

http://cwiki.apache.org/CXF20DOC/jetty-configuration.html

see httpj:sessionSupport

Otherwise I'm not sure what else can be done - you're working directly against 
HttpServletRequest so I'm not sure why
the session is not mantained against multiple requests...
Does anyone know, is there anything special that JAX-WS runtime does in this 
regard ?

thanks, Sergey
  ----- Original Message ----- 
  From: [email protected] 
  To: Sergey Beryozkin 
  Sent: Wednesday, April 29, 2009 3:08 PM
  Subject: Re: Re: Getting hold of session in JAXRS service


  Hi Sergey, 
  Thanks for your response. 
  I was able to get HttpServletRequest but the purpose remains unresolved 
because of the following. 
  (1) When I try to get session from HttpServletRequest, the session id is 
different for every service request from web client. 
  public void method1 ( Parameter param) 
  { 
  System.out.println ("request-->"+request); 
  System.out.println ("session id-->"+request.getSession().getId()); 
  request.getSession().setAttribute ("sVar", "SessionVariable"); 
  } 

  public void method2 (Parameter param) 
  { 
  System.out.println ("request-->"+request); 
  System.out.println ("session id-->"+request.getSession().getId()); 
  String svar = (String) request.getSession().getAttribute ("sVar"); 
  System.out.println ("Session Variable-->"+svar); 
  } 
  In the code above, the session id in method1 is printed different for 
different client requests. 
  (2) The string variable placed in session in method1() is not available in 
method2(). In method2(), the string variable in session is null. 

  Is there any way to have the session variable retained? 

  Thanks. 
  Mani. 

  On Apr 29, 2009 8:57am, Sergey Beryozkin <[email protected]> wrote: 
  > 
  > 
  > 
  > 
  > 
  > 
  > 
  > 
  > 
  > 
  > 
  > 
  > 
  > 
  > Hi 
  > 
  > 
  >   
  > 
  > 
  > 
  > 
  > @Resource   
  > 
  >         public void setContext(WebServiceContext context)    
  > 
  >             {   
  > 
  >                 System.out.println("Setting the context..." + context );   
  > 
  >                  this.request 
=(HttpServletRequest)context.getMessageContext().get(MessageContext.SERVLET_REQUEST);
    
  > 
  >                  this.wsContext = context;   
  > 
  >             }   
  > 
  > 
  >   
  > 
  > 
  > This code seems wrong, as well as 
  > 
  > 
  > 
  > 
  >   
  > 
  > 
  > 
  > 
  > "contextBean" class="org.apache.cxf.jaxws.context.WebServiceContextImpl">   
  > 
  >      
  > 
  > 
  >   
  > 
  > 
  > which is a JAXWS context 
  > 
  > impl... 
  > 
  > 
  >   
  > 
  > 
  >   
  > 
  > 
  > Just remove it 
  > 
  > and things should start working for you, you  might also want to change 
  > 
  >   
  > 
  > 
  >   
  > 
  > 
  > @Resource   private HttpServletRequest request;   
  > 
  > 
  >   
  > 
  > 
  > to 
  > 
  > 
  > 
  > 
  >   
  > 
  > 
  > 
  > 
  > @Context   private HttpServletRequest request;   
  > 
  > 
  >   
  > 
  > 
  > though it should not be 
  > 
  > needed 
  > 
  > 
  >   
  > 
  > 
  > let me know please if 
  > 
  > it works for you 
  > 
  > 
  > Sergey 
  > 

Reply via email to