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;
}