All, I am getting the error: java.lang.RuntimeException: Could not resolve the node to a handle The error is very odd as it runs the first node successfully but throws an exception on the second node, regardless of which node is executed ( I moved the xml nodes around in the XML file).
Basically the program is parsing 2 files. I file is the xml client data (No problems even though I traverse the tree up and down) and the other is an xml config file with xpath expressions in it. An example of the xml I am trying to run is (this is the xml config file): <!-- Runs fine --> <FieldMapping identifier="1.SubmissionType" xpath="SubmissionTypeCode/text()" converter="com.infoterra.grantium.service.integration.datamapper.converters.impl.LookupConverter"> <ConverterAdditionalMapping> <LookUpInfo constant="SF424_SUBMISSION_TYPE/> </ConverterAdditionalMapping> </FieldMapping> <!-- exception is thrown --> <FieldMapping identifier="2.ApplicationType" xpath="ApplicationTypeCode/text()" converter="com.infoterra.grantium.service.integration.datamapper.converters.impl.LookupConverter"> <ConverterAdditionalMapping> <LookUpInfo constant="SF424_APPLICANT_TYPE"/> </ConverterAdditionalMapping> </FieldMapping> The java code that is calling the xpath is: //Note that this is recreated for every node. Is this part of the problem????? XPathFactory xpathfactory= XPathFactory.newInstance(); XPath xpath = xpathfactory.newXPath(); //converterAdditionalMappingNode is the <ConverterAdditionalMapping> node String lookupConstant = (String)xpath.evaluate("LookUpInfo/@constant", converterAdditionalMappingNode, XPathConstants.STRING); Note that I have XMLBean'ed the config file so that I can traverse it with objects, however the <ConverterAdditionalMapping> node is supposed to be client specific and therefore cannot be XMLBean'ed. Why is there a problem with this? The stack trace is: Caused by: java.lang.RuntimeException: Could not resolve the node to a handle at org.apache.xml.dtm.ref.DTMManagerDefault.getDTMHandleFromNode(DTMManagerDefault.java:625) at org.apache.xpath.XPathContext.getDTMHandleFromNode(XPathContext.java:220) at org.apache.xpath.XPath.execute(XPath.java:274) at org.apache.xpath.jaxp.XPathImpl.eval(XPathImpl.java:210) at org.apache.xpath.jaxp.XPathImpl.evaluate(XPathImpl.java:275) at com.infoterra.grantium.service.integration.datamapper.converters.impl.LookupConverter.convertSimpleData(LookupConverter.java:48) ... 27 more I am trying to create a work around for now, but this will become a much larger issue once the client configs become increasingly complicated. Thanks in advance for any and all advice, Rhys Parry Product Development Infoterra Inc. - Leadership in Enterprise Grants Management (EGM) Solutions Phone #: 613-230-7890 Ext: 239 Fax #: 613-230-5243