2017-12-07 3 views
0

Ich bin ziemlich neu in der Verwendung von SOAP und Blueprint (die genau wie Spring ist). Wie auch immer, ich versuche nur, die Grundlagen atm zu lernen, bisher ziemlich gut.Lesen von XML-Dateien mit Java, Rückgabe in einer SOAP-Anfrage

Ich habe ein kleines Problem bei der Verwendung einer Java-Klasse, um einen bestimmten Knotenwert aus einer XML-Datei abrufen. Das funktioniert, wenn ich die Anwendung als eigenständiges Programm ausführe, aber wenn ich die Anfrage mit Soap bekomme, gibt der Wert "lastName" null zurück.

public static void main(String[] args) throws XPathExpressionException { 

    DocumentBuilderFactory builderFactory = 
      DocumentBuilderFactory.newInstance(); 
    DocumentBuilder builder = null; 
    try { 
     builder = builderFactory.newDocumentBuilder(); 
    } catch (ParserConfigurationException p) { 
     p.printStackTrace(); 
    } 
    try { 
    Document document = builder.parse(new FileInputStream("d:\\input11.xml")); 
    XPath xP = XPathFactory.newInstance().newXPath(); 
    String expression ="/people/person/lastName"; 
    NodeList nodeList = (NodeList) xP.compile(expression).evaluate(document, XPathConstants.NODESET); 
    for (int i = 0; i < nodeList.getLength(); i++) { 
     lastName += nodeList.item(i).getFirstChild().getNodeValue() + " "; 
    } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (SAXException s) { 
     s.printStackTrace(); 
    } 

    System.out.println(lastName); 
} 

public static String returnLastName(String input){ 
System.out.println(lastName); 

return "LastName: "+lastName +"\n"; 

} 

} 

Und hier ist mein blueprint.xml Code:

<bean id="lastNameBean" class="com.*****.camelBlueprintTest.XMLCamel" /> 
    <route id="lastName"> 
<from uri="cxf:bean:returnLName" /> 
<bean ref="lastNameBean" method="returnLastName" /> 
    <log message="The message contains ${body}" /> 
    <to uri="mock:result" /> 
</route> 

So ist es nicht zurückgibt tatsächlich die letzten Namen, wenn ich die Java-Anwendung ausführen, aber in der SOAP-Anfrage Ich erhalte "Name: null" .

Irgendwelche Hilfe/Ratschläge zu diesem Thema würde ich schätzen, aber wie ich sagte, ich bin ziemlich neu zu Web Services verwenden so nackte mit mir :) Danke!

Antwort

0

AH !! Ich habe den Fehler gefunden. Wie dumm von mir. Also, ich rief die Methode in meinem Entwurf "returnLastName" an und es gab null zurück, ich wusste nicht, dass diese Methode ALONE genannt wurde, also bewegte ich meinen Code von der Hauptinstanz in die Methode und reparierte sie wie einen Zauber haha.

Ich fühle mich wirklich albern, aber es sind immer die kleinen Fehler, die mich erwischen.

Verwandte Themen