geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Veithen <>
Subject Re: SOAPMessage.getSOAPHeaders() return null while no headers in the soap envelope
Date Mon, 11 Apr 2011 17:27:49 GMT

Based on your description of the problem it is not possible to
determine if that should be considered an issue in Axiom, axis2-saaj
or axis2-jaxws. Please open a JIRA report and submit a test case that
allows to reproduce the issue so that we can determine where this
needs to be fixed.


On Mon, Apr 11, 2011 at 10:41, Ivan <> wrote:
> Seems that axiom optimize the serialization, if no sub header element
> exists, it will not output header element.
> --->
> if ((header != null) && (header.getFirstOMChild() != null)) {
>                     serializeInternally((OMNodeImpl) header, writer);
>                 }
> <---
> 2011/4/11 Ivan <>
>> Hi, I am running Axis2 on Geronimo 3.0, and in the latest JAX-WS TCK
>> testing, I got a NPE for some cases. The cause for it is that some cases
>> will check whether those elements are not in the SOAP headers, while those
>> soap message has no header element.
>> From the Java doc of SOAPMessage, it writes :
>> getSOAPHeader
>> public SOAPHeader getSOAPHeader()
>>                          throws SOAPException
>> Gets the SOAP Header contained in this SOAPMessage object.
>> Returns: the SOAPHeader object contained by this SOAPMessage object
>> Throws: SOAPException - if the SOAP Header does not exist or cannot be
>> retrieved Since: SAAJ 1.2
>> From the Java Doc of SOAPEnvelop, it wirtes:
>> getHeader
>> SOAPHeader getHeader()
>>                      throws SOAPException
>> Returns the SOAPHeader object for this SOAPEnvelope object.
>> A new SOAPMessage object is by default created with a SOAPEnvelope object
>> that contains an empty SOAPHeader object. As a result, the method getHeader
>> will always return a SOAPHeader object unless the header has been removed
>> and a new one has not been added.
>> Returns: the SOAPHeader object or null if there is none Throws:
>> SOAPException - if there is a problem obtaining the SOAPHeader object
>> It seems that there is different behavior for SOAPMessage.getSOAPHeader()
>> and SOAPEnvelop.getHeader(). and in current axis2-saaj implementation, it
>> always returns null while no header element exists.
>> Personally, I thought it is an issue of saaj spec, it is not user-friendly
>> to throw an exception while no header exists. Actually, I also test this
>> with the ri saaj implementation, and it seems to have the same behavior with
>> axis2-saaj.
>> Another possible solution is to add an empty header element for those soap
>> message if no header element exists, I could see it could be done in the
>> SAAJConverter.
>> Thoughts ?
>> thanks.
>> --
>> Ivan
> --
> Ivan

View raw message