Details
-
Bug
-
Status: Resolved
-
Resolution: Duplicate
-
None
-
None
-
None
-
Operating System: All
Platform: All
-
14343
Description
Hi,
Since the mustunderstand attribute values are changed in soap 1.2 here is a
patch for it. Plz let me know if this helps.
Br,
Andras
And of course the diff:
— 20021027/org/apache/axis/message/SOAPHeaderElement.java Wed Oct 16 10:38:10 2002
+++ 1_0_soap12/org/apache/axis/message/SOAPHeaderElement.java Wed Nov 6
15:40:48 2002
@@ -67,7 +67,7 @@
import javax.xml.soap.Name;
import javax.xml.namespace.QName;
-/**
+/**
- A simple header element abstraction. Extends MessageElement with
- header-specific stuff like mustUnderstand, actor, and a 'processed' flag.
*
@@ -100,13 +100,18 @@
{
super(elem);
- // FIXME : This needs to come from someplace reasonable, perhaps
- // TLS (SOAPConstants.getCurrentVersion() ?)
SOAPConstants soapConstants = SOAPConstants.SOAP11_CONSTANTS;
+ if
(getNamespaceURI().equals(SOAPConstants.SOAP12_CONSTANTS.getEnvelopeURI()))
+ soapConstants = SOAPConstants.SOAP12_CONSTANTS;
+
String val = elem.getAttributeNS(soapConstants.getEnvelopeURI(),
Constants.ATTR_MUST_UNDERSTAND);
- mustUnderstand = ((val != null) && val.equals("1")) ? true : false;
+
+ if (soapConstants == SOAPConstants.SOAP12_CONSTANTS)
+ mustUnderstand = ((val != null) && val.equals("true")) ? true : false;
+ else
+ mustUnderstand = ((val != null) && val.equals("1")) ? true : false;
QName roleQName = soapConstants.getRoleAttributeQName();
actor = elem.getAttributeNS(roleQName.getNamespaceURI(),
@@ -118,9 +123,9 @@
public void setParentElement(SOAPElement parent) throws SOAPException {
if(parent == null)
- throw new
IllegalArgumentException(Messages.getMessage("nullParent00"));
+ throw new
IllegalArgumentException(Messages.getMessage("nullParent00"));
if(!(parent instanceof SOAPHeader)) - throw new
IllegalArgumentException(Messages.getMessage("illegalArgumentException00"));
+ throw new
IllegalArgumentException(Messages.getMessage("illegalArgumentException00"));
try { super.setParentElement((SOAPHeader)parent); }catch (Throwable t) {
@@ -144,7 +149,11 @@
// Check for mustUnderstand
String val = attributes.getValue(soapConstants.getEnvelopeURI(),
Constants.ATTR_MUST_UNDERSTAND); - mustUnderstand = ((val != null) && val.equals("1")) ? true : false;
+
+ if (soapConstants == SOAPConstants.SOAP12_CONSTANTS)
+ mustUnderstand = ((val != null) && val.equals("true")) ? true : false;
+ else
+ mustUnderstand = ((val != null) && val.equals("1")) ? true : false;
QName roleQName = soapConstants.getRoleAttributeQName();
actor = attributes.getValue(roleQName.getNamespaceURI(),
@@ -187,7 +196,11 @@
setAttribute(roleQName.getNamespaceURI(),
roleQName.getLocalPart(), actor);
- String val = mustUnderstand ? "1" : "0";
+ String val;
+ if (context.getMessageContext().getSOAPConstants() ==
SOAPConstants.SOAP12_CONSTANTS)
+ val = mustUnderstand ? "true" : "false";
+ else
+ val = mustUnderstand ? "1" : "0";
setAttribute(soapVer.getEnvelopeURI(),
Constants.ATTR_MUST_UNDERSTAND,