cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Clegg (JIRA)" <j...@apache.org>
Subject [jira] Created: (CXF-2101) Cannot add headers to request from Dispatch client in async mode -- ThreadLocal issue
Date Tue, 10 Mar 2009 18:00:50 GMT
Cannot add headers to request from Dispatch client in async mode -- ThreadLocal issue
-------------------------------------------------------------------------------------

                 Key: CXF-2101
                 URL: https://issues.apache.org/jira/browse/CXF-2101
             Project: CXF
          Issue Type: Bug
          Components: JAX-WS Runtime
    Affects Versions: 2.1.4
         Environment: JDK 1.6.0_10
            Reporter: Andrew Clegg


org.apache.cxf.jaxws.DispatchImpl extends org.apache.cxf.jaxws.BindingProviderImpl, which
has a requestContext field:

protected ThreadLocal <Map<String, Object>> requestContext = 
    new ThreadLocal<Map<String, Object>>();

Because the request context is in a ThreadLocal, changes made to it are not visible when you
invoke the service via DispatchImpl's invokeAsync method.

For example:

dispatch.getRequestContext().put(
        BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE );
dispatch.getRequestContext().put(
        BindingProvider.SOAPACTION_URI_PROPERTY, "uri:myAction" );

// If you call it this way, no SOAPAction header, verified by Wireshark:
Response<StreamSource> response = dispatch.invokeAsync( request );

// But if you call it this way, you get the header
StreamSource result = dispatch.invoke( request );

I can package up a test case if anyone thinks it would help fix this. Personally I know very
little about CXF's internals, or the JAX-WS specs, but I can do whatever necessary to help.

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


Mime
View raw message