Daniel,
One more question is it possible to implement stateful webservice in CXF
in Object Oriented way as suggested by kawaguchi in his blog
http://weblogs.java.net/blog/kohsuke/archive/2006/10/stateful_web_se.html
dkulp wrote:
>
>
> 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
>
>
--
View this message in context:
http://old.nabble.com/Always-new-HttpSession-object-is-created-when-using-WebServiceContext-tp28287838p28482307.html
Sent from the cxf-user mailing list archive at Nabble.com.