Чтение файлов XML с использованием Java, возврат в запросе SOAP

Я новичок в использовании SOAP и Blueprint (что похоже на Spring). Во всяком случае, я просто пытаюсь изучить основы atm, пока у меня неплохо получается.

Я столкнулся с небольшой проблемой при использовании класса Java для извлечения определенного значения узла из файла XML. Это работает, когда я запускаю приложение как автономное, но когда я получаю запрос с помощью Soap, значение «lastName» возвращает значение null.

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

} 

}

А вот мой код blueprint.xml:

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

Таким образом, он действительно возвращает фамилии, когда я запускаю приложение Java, но в запросе SOAP я получаю «LastName: null».


person Tuss    schedule 07.12.2017    source источник


Ответы (1)


А!! Я нашел ошибку. Я такой глупый. Итак, я вызывал метод в своем проекте «returnLastName», и он возвращал значение null, я не осознавал, что этот метод называется ALONE, поэтому перемещение моего кода из основного в метод зафиксировало его как очарование, ха-ха.

Я чувствую себя очень глупо, но меня всегда достают маленькие ошибки.

person Tuss    schedule 07.12.2017