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 > --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@axis.apache.org For additional commands, e-mail: java-user-h...@axis.apache.org