You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bu...@apache.org on 2002/09/10 21:54:18 UTC

DO NOT REPLY [Bug 12497] New: - SOAP headers not being populated by Call.invoke()

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12497>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12497

SOAP headers not being populated by Call.invoke()

           Summary: SOAP headers not being populated by Call.invoke()
           Product: Axis
           Version: current (nightly)
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Basic Architecture
        AssignedTo: axis-dev@xml.apache.org
        ReportedBy: agrawal@lucent.com


The org.apache.axis.client.Call.invoke() method appears to be the only place 
that adds headers to the message - this is a good thing.  However, within the 
invoke method, the headers are only added under certain conditions - this is a 
bad thing.  Headers should be added for ALL invocations.

Test: in a subclass of xxLocator.java where we override the createCall() 
method, we are doing a call.addHeader(someHeaderElementHere) (where call is 
created by super.createCall()).  However, upon inspection of the SOAP message 
(via tcpmon), we see no header in the packet.

Code for subclass of xxLocator:

    public javax.xml.rpc.Call createCall ()
        throws javax.xml.rpc.ServiceException {

        String HEADER_NS = "http://soapinterop.org/echoheader/";
        String HEADER_REQNAME = "echoMeStringRequest";


        org.apache.axis.client.Call call = (org.apache.axis.client.Call) 
super.createCall();

        org.apache.axis.message.SOAPHeaderElement se =
            new org.apache.axis.message.SOAPHeaderElement(HEADER_NS,
                                                         HEADER_REQNAME,
                                                         this.referenceId);
        call.addHeader(se);

        return call;
    }