[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xmlbeans-user
Subject:    Problem with recursive xpath
From:       "Rhys Parry" <rparry () Infoterra ! com>
Date:       2006-09-26 18:40:10
Message-ID: 981D1FCECE43C74285832557577611821C23B5 () infoterra-m2003 ! Infoterra ! com
[Download RAW message or body]



> All,
> 
**Update:  I sent this to the wrong list earlier.  I currently have a work around, \
however, not as elegant as I would like. The problem persists.

> 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 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic