Open a JIRA https://issues.apache.org/jira/browse/AXIS2-5001 for this
2011/4/12 Andreas Veithen <andreas.veit...@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 <xhh...@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 <xhh...@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