You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "jimma (JIRA)" <ji...@apache.org> on 2010/07/29 08:33:19 UTC

[jira] Resolved: (CXF-2911) HttpServletRequest.getScheme() returns null in one way webservice method

     [ https://issues.apache.org/jira/browse/CXF-2911?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

jimma resolved CXF-2911.
------------------------

    Resolution: Fixed

> HttpServletRequest.getScheme()  returns null in one way webservice method
> -------------------------------------------------------------------------
>
>                 Key: CXF-2911
>                 URL: https://issues.apache.org/jira/browse/CXF-2911
>             Project: CXF
>          Issue Type: Bug
>          Components: WS-* Components
>    Affects Versions: 2.2.9
>            Reporter: jimma
>            Assignee: jimma
>             Fix For: 2.3
>
>
> When this SEI is deployed in tomcat , the httpServletRequest.getScheme() returns null value:
> @Addressing(required=true)
> @WebService(serviceName = "SOAPService", endpointInterface = "org.apache.hello_world.Greeter", targetNamespace = "http://apache.org/hello_world")
> public class GreeterImpl implements Greeter {
>     @Resource
>     WebServiceContext wscontext;
>     private String myName;
>     public GreeterImpl() {
>         this("defaultGreeter");
>     }
>     public GreeterImpl(String name) {
>         myName = name;
>     }
>     public String greetMe(String me) {
>         return "Hello " + me;
>     }
>     public String sayHi() {
>         return "Bonjour from " + myName;
>     }
>     public void pingMe() {
>         MessageContext msgContext = wscontext.getMessageContext();
>         HttpServletRequest httpServletRequest =
>         (HttpServletRequest)msgContext.get(MessageContext.SERVLET_REQUEST);
>         System.out.println(httpServletRequest.getScheme());
>     }
> }
> From the code , the WSA interceptor will create another thread to run  the serviceInvoker interceptor and servlet thread (receives the http request) will cleanup the request information.
> The serviceInvoker in the new created thread always get null value from schemeMB. 
> package org.apache.coyote;
> public final class Request{
> public void recycle() {
>         bytesRead=0;
>         contentLength = -1;
>         contentTypeMB = null;
>         charEncoding = null;
>         headers.recycle();
>         serverNameMB.recycle();
>         serverPort=-1;
>         localPort = -1;
>         remotePort = -1;
>         available = 0;
>         cookies.recycle();
>         parameters.recycle();
>         unparsedURIMB.recycle();
>         uriMB.recycle(); 
>         decodedUriMB.recycle();
>         queryMB.recycle();
>         methodMB.recycle();
>         protoMB.recycle();
>         schemeMB.recycle();
>         instanceId.recycle();
>         remoteUser.recycle();
>         authType.recycle();
>         attributes.clear();
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.