geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ivan <xhh...@gmail.com>
Subject Re: SOAPMessage.getSOAPHeaders() return null while no headers in the soap envelope
Date Tue, 12 Apr 2011 07:43:49 GMT
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

Mime
View raw message