This sounds like a bug from the client generating the message. The client
shouldn't be setting a "Set-Cookie" header. The server sets that when it
sends the response back to the client. The client should then be sending just
a "Cookie" header.
Dan
On Wednesday 05 May 2010 9:56:18 am Arif Mohd wrote:
> Daniel,
> One more observation when i tried to print all the HTTPRequestHeaders i
> found that iam getting Set-Cookie header and its value is also proper(i.e,
> iam getting the same header value which was sent in previous HTTPRespose)
> but if i call getCookies() on the HTTPRequest object iam gettting null
>
> Here is the code snippet
>
> public List<Names> getNames(){
>
> HttpServletRequest req = (HttpServletRequest)
> mc.get(MessageContext.SERVLET_REQUEST);
> Enumeration en = req.getHeaderNames();
> while(en.hasMoreElements()){
> String header = (String)en.nextElement();
> System.out.println("header:"+header+"
> value:"+req.getHeader(header));
> }
> Cookie[] cookies=req.getCookies();
> if(cookies!=null){
> for(Cookie cookie:cookies){
> System.out.println("************ cookie:"+cookie);
> //iam not getting this SOP
> }
> }
> HttpSession session = req.getSession();
> System.out.println(" ************ is new
> session:"+session.isNew());//always true
> return null;
> }
>
> output is :
>
> header:Accept-Encoding value:gzip,deflate
> header:Content-Type value:text/xml;charset=UTF-8
> header:SOAPAction value:""
> header:Set-Cookie2 value:
> header:Set-Cookie value:JSESSIONID=0000zqjYDsVbvL1B71mywyGjis4:-1;
> Path=/
> header:User-Agent value:Jakarta Commons-HttpClient/3.1
> header:Host value:myhost:9080
> header:Content-Length value:238
> ************ is new session:true
>
> dkulp wrote:
> > On Tuesday 04 May 2010 4:57:02 am Arif Mohd wrote:
> >> Can any one let me know what am i doing wrong here ?
> >
> > I really have no idea. The code all looks correct to I'm going to
> > assume it's a Websphere bug of some sort.
> >
> > Dan
> >
> >> Arif Mohd wrote:
> >> > Hi Daniel,
> >> >
> >> > The service is setup in war and deployed on Websphere application
> >> >
> >> > server 6.1. Could you please let me know what iam missing here ?
> >> >
> >> > Regards,
> >> > Arif.
> >> >
> >> > -----Original Message-----
> >> > From: Daniel Kulp [mailto:[email protected]]
> >> > Sent: Tuesday, April 20, 2010 7:42 PM
> >> > To: [email protected]
> >> > Cc: Arif pasha Mohammed (WT01 - Telecom Equipment)
> >> > Subject: Re: Always new HttpSession object is created when using
> >> > WebServiceContext
> >> >
> >> >
> >> > Is your service a service setup as a war or similar running in tomcat
> >>
> >> or
> >>
> >> > is it some sort of standalone "main method" type thing? If
> >> > standalone, see:
> >> > http://cxf.apache.org/docs/jetty-configuration.html
> >> > for how to turn on the session support for the embedded jetty.
> >> >
> >> > Dan
> >> >
> >> > On Tuesday 20 April 2010 7:09:30 am Arif Mohd wrote:
> >> >> Hi,
> >> >>
> >> >> Iam using CXF version 2.2.5 and trying to implement the stateful
> >> >>
> >> >> webservice by using @Resource annotation to inject WebServiceContext
> >> >>
> >> >> The code is as follows
> >> >>
> >> >> @WebService(portName ="monitorPort" , endpointInterface =
> >> >> "com.xxx.service.MonitorSEI",
> >> >>
> >> >> serviceName = "monitorService") public class MonitorService
> >> >>
> >> >> implements MontitorSEI{
> >> >>
> >> >> @javax.annotation.Resource
> >> >> private WebServiceContext wsc;
> >> >>
> >> >> public List<Names> getNames(){
> >> >>
> >> >> HttpServletRequest req = (HttpServletRequest)
> >> >>
> >> >> wsc.getMessageContext().get(AbstractHTTPDestination.HTTP_REQUEST);
> >> >>
> >> >> Cookie[] cookies=req.getCookies();
> >> >> if(cookies!=null){
> >> >>
> >> >> for(Cookie cookie:cookies){
> >> >> System.out.println("************ cookie:"+cookie); //iam
> >> >
> >> > not
> >> >
> >> >> getting this SOP
> >> >>
> >> >> }
> >> >>
> >> >> }
> >> >> HttpSession session = req.getSession();
> >> >> System.out.println(" ************ is new
> >> >>
> >> >> session:"+session.isNew());//always true
> >> >>
> >> >> }
> >> >>
> >> >> }
> >> >>
> >> >> Iam using SOAP UI to send the request and the property "Maintain HTTP
> >> >> Session" is set, i have examined the SOAP request and noticed that
> >> >> the
> >> >>
> >> >> client is returning back JSESSIONID cookie properly.
> >> >>
> >> >> But still the server is creating a new HttpSession and
> >> >> obviously
> >> >>
> >> >> it is sending new JSESSIONID in next response to the client
> >> >>
> >> >> I have attached the following interceptor to inbound message of
> >> >>
> >> >> service end point to examine the value of JSESSIONID sent by the
> >> >
> >> > client.
> >> >
> >> >> public class HTTPHeaderInterceptor extends SoapHeaderInterceptor{
> >> >>
> >> >> public void handleMessage(Message message) throws Fault {
> >> >>
> >> >> Map<String,List<String>> map
> >> >>
> >> >> =(Map<String,List<String>>)message.get(Message.PROTOCOL_HEADERS);
> >> >>
> >> >> for(String str:map.keySet()){
> >> >>
> >> >> if(str.equals("Set-Cookie")){
> >> >>
> >> >> System.out.println("******* cookies");
> >> >> List<String>
> >> >
> >> > lst=(List<String>)map.get(str);
> >> >
> >> >> for(String cookie:lst){
> >> >>
> >> >> System.out.println(cookie);
> >> >>
> >> >> }
> >> >>
> >> >> }
> >> >>
> >> >> }
> >> >>
> >> >> }
> >> >>
> >> >> }
> >> >>
> >> >> Can anybody suggest me whats going wrong here ?
> >> >
> >> > --
> >> > Daniel Kulp
> >> > [email protected]
> >> > http://dankulp.com/blog
> >> >
> >> > Please do not print this email unless it is absolutely necessary.
> >> >
> >> > The information contained in this electronic message and any
> >>
> >> attachments
> >>
> >> > to this message are intended for the exclusive use of the addressee(s)
> >> > and may contain proprietary, confidential or privileged information.
> >> > If you are not the intended recipient, you should not disseminate,
> >> > distribute or copy this e-mail. Please notify the sender immediately
> >>
> >> and
> >>
> >> > destroy all copies of this message and any attachments.
> >> >
> >> > WARNING: Computer viruses can be transmitted via email. The recipient
> >> > should check this email and any attachments for the presence of
> >>
> >> viruses.
> >>
> >> > The company accepts no liability for any damage caused by any virus
> >> > transmitted by this email.
> >> >
> >> > www.wipro.com
> :
> :confused::confused::confused::confused::confused::confused::confused::conf
> :used::confused::confused::-((:-((:-((:-((:-((:confused::confused::confused
> :::confused::confused::confused::confused::confused::confused::confused::co
> :nfused::confused::confused::confused::confused::confused::confused:
--
Daniel Kulp
[email protected]
http://dankulp.com/blog