Open a JIRA https://issues.apache.org/jira/browse/AXIS2-5001 for this

2011/4/12 Andreas Veithen <andreas.veithen@gmail.com>
Ivan,

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.

Andreas

On Mon, Apr 11, 2011 at 10:41, Ivan <xhhsld@gmail.com> 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 <xhhsld@gmail.com>
>>
>> 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
>



--
Ivan