[jboss-user] [JBossWS] - JBOSS-WS Client not sending COOKIE after 2 calls

fredash do-not-reply at jboss.com
Wed Jul 4 11:36:03 EDT 2007


Hi,

I just tested under JBoss AS 4.0.5 & JBossWS 1.2.1 a session mecanism based on the HTTP Session Cookie (with a code sample from Rama Pulavarthi's blog).

Here is the Web Service code:

  | @WebService
  | public class Hello {
  |     @Resource
  |     private WebServiceContext wsContext;
  |     public int getCounter(){
  |         MessageContext mc = wsContext.getMessageContext();
  |         HttpSession session = ((javax.servlet.http.HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST)).getSession();
  |         // Get a session property "counter" from context
  |         if (session == null)
  |             throw new WebServiceException("No session in WebServiceContext");
  |         Integer counter = (Integer)session.getAttribute("counter");
  |         if (counter == null) {
  |             counter = new Integer(0);
  |             System.out.println("Starting the Session");
  |         }
  |         counter = new Integer(counter.intValue() + 1);
  |         session.setAttribute("counter", counter);
  |         return counter;
  |     }
  | }
  | 

Here is the Web Service Client code:

  | Hello proxy = new HelloService().getHelloPort();
  | ((BindingProvider)proxy).getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);
  | int result = proxy.getCounter();
  | System.out.println(result);
  | result = proxy.getCounter();
  | System.out.println(result);
  | result = proxy.getCounter();
  | System.out.println(result);
  | 

The first 2 calls to proxy.getCounter() method just worked as expected : On the first call, a new session is created by the Web-Service and a SET-COOKIE is sent by the HTTP transport layer to the Client.

The second call to proxy.getCounter() generates a SOAP message with the COOKIE received after the first call.

BUT, when a 3rd call is fired, the client do not send anymore the COOKIE and then the server re-creates a new session.

The problem seems to be at the client level, when the client stops to send the COOKIE value after the second call.

** BTW, this code is  for testing purpose and i know that the session mecanism in Web Services should ideally be implemented with the WS-Addressing mecanism.

Thanks in advance for your suggestions.

Fred.


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4060524#4060524

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4060524



More information about the jboss-user mailing list