Hi Daniel,

     I guess the problem is with injection of WebServiceContext object by
websphere, iam injecting it as follows.

        @javax.annotation.Resource 
             private WebServiceContext wsc; 

    But Websphere6.1 is not fully JEE compliant server and needs a feature
pack for webservices, i haven't installed webservice feature pack but iam
having ejb3.0 feature pack installed on it.

    Now iam not understanding how it is injecting WebServiceContext if there
is no webservice feature pack installed, it should have injected null.

     Now to isolate this problem is there any way by which i can bind the
WebServiceContext object through CXF configuration into JNDI namespace so
that i can lookup this object from my webservice implementation instead of
gettting injected by AppServer ?

 


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
> 
> -- 
> 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-tp28287838p28459793.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to