Hi Willem:

Your question point the wrong thing I made!
I declared both the WebServiceContext and the MessageContext objects as
global variables.
But the MessageContext object must not be a global variable, it should be a
local variable in method.
A MessageContext object is attached to each request message from client.

I had made a really stupid thing!

Thank you for your opinions. :)


Prinston


willem.jiang wrote:
> 
> Hi
> 
> Cam you show me how can you get the ctx object ?
> If the ctx that you use is get from WebServiceContext which has a thread 
> local variable , it is injected to CXF for getting the message context.
> I don't know if this can relate to the issue that you met.
> 
> 
> Willem.
> 
> Prinston wrote:
>> Dears:
>>
>> I put some code into a web method to get client IP.
>>
>> ex:
>> public boolean recordIP() {
>>      try {
>>              debugInfo.append(" ").append(
>>              ((HttpServletRequest) ctx
>>              .get(AbstractHTTPDestination.HTTP_REQUEST))
>>              .getRemoteAddr());
>>              return true;
>>      } catch (Exception e) {
>>              return false;
>>      }
>> }
>>
>> When the first client from IP1 call this method, it record the IP1
>> address.
>> No problem.
>> But then the second client from IP2 call this method, it "SOMETIMES"
>> still
>> record the IP1 address (the old one).
>> This situation might occur in some condition (ex: after browsing some
>> other
>> jsp page in other web ap in the same web instance). I am not sure what
>> condition may cause this problem exactly.
>>
>> Has anyone got this problem before? Thanks!
>>
>> My AP configuration: Apache 2.2.24+Tomcat5.5.20(using AJP13
>> connector)+CXF2.0.1
>>   
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Problem%3A-When-invoke-HttpServletRequet.getRemoteAddr%28%29%2C-it-return-the-old-client-IP...-tp15082583p15084603.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to