Hi,

Hi,

I have implemented a JAX-WS service using the Provider<SOAPMessage> interface. I would like to extract elements from the SOAP request using XPath. But when I execute the XPathExpression on the SOAPPart of the message, I get this ugly NullPointerException. I assume that, since SOAPPart implements a DOM Document, this should work.

Here is an extract of my code:

public SOAPMessage invoke(SOAPMessage message) {
    XPathFactory factory = XPathFactory.newInstance();
    XPath xpathBuilder = factory.newXPath();
XPathExpression xpath = xpathBuilder.compile("//OnBehalfOf/UsernameToken/Username/text()"); Node node = (Node) xpath.evaluate(message.getSOAPPart(), XPathConstants.NODE);
}

The exception:

Caused by: javax.xml.transform.TransformerException: Unknown error in XPath.
    at org.apache.xpath.XPath.execute(XPath.java:363)
    at org.apache.xpath.XPath.execute(XPath.java:301)
at org.apache.xpath.jaxp.XPathExpressionImpl.eval(XPathExpressionImpl.java:123) at org.apache.xpath.jaxp.XPathExpressionImpl.eval(XPathExpressionImpl.java:97) at org.apache.xpath.jaxp.XPathExpressionImpl.evaluate(XPathExpressionImpl.java:178)
    ... 38 more
Caused by: java.lang.NullPointerException
    at org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.nextNode(DOM2DTM.java:387)
at org.apache.xml.dtm.ref.DTMDefaultBase._nextsib(DTMDefaultBase.java:563) at org.apache.xml.dtm.ref.DTMDefaultBase.getNextSibling(DTMDefaultBase.java:1140) at org.apache.xml.dtm.ref.DTMDefaultBaseTraversers$ChildTraverser.next(DTMDefaultBaseTraversers.java:461)
    at org.apache.xpath.axes.AxesWalker.getNextNode(AxesWalker.java:333)
    at org.apache.xpath.axes.AxesWalker.nextNode(AxesWalker.java:361)
at org.apache.xpath.axes.WalkingIterator.nextNode(WalkingIterator.java:192)
    at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:281)
    at org.apache.xpath.axes.NodeSequence.runTo(NodeSequence.java:435)
    at org.apache.xpath.axes.NodeSequence.setRoot(NodeSequence.java:218)
at org.apache.xpath.axes.LocPathIterator.execute(LocPathIterator.java:210)
    at org.apache.xpath.XPath.execute(XPath.java:335)

I use Axis2 1.6.1 and JBoss 5

Has anybody seen something like this? Am I doing something wrong?

Thanks,

Lior

--

AdNovum Informatik AG
Lior Wehrli, Senior Software Engineer
MSc Computer Science ETH

Roentgenstrasse 22, CH-8005 Zurich
mailto:lior.weh...@adnovum.ch
phone: +41 44 272 6111, fax: +41 44 272 6312
http://www.adnovum.ch

AdNovum Offices: Bern, Budapest, Singapore, Zurich (HQ)

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@axis.apache.org
For additional commands, e-mail: java-user-h...@axis.apache.org

Reply via email to