這是印刷SOAP響應:無法檢索從節點在SOAP響應文本內容
<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns0:Get_People_Operation xmlns:ns0="urn:PeopleInterface" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns0:Full_Name>asdf - Full Name</ns0:Full_Name>
</ns0:Get_People_Operation>
</soapenv:Body>
</soapenv:Envelope>
的方法來提取節點值:
String assigneeInput = getNode(responseElementAssignee, "Full_Name");
private static String getNode(Element responseElement, String nodeValue) {
Node x = (Node) responseElement.getElementsByTagName(nodeValue);
x.getTextContent();
// Test list output
System.out.println("");
System.out.println(nodeValue + " Value: " + x.toString());
System.out.println("");
return x.getTextContent();
}
所有我想要的是返回的該文本內容節點<ns0:Full_Name>asdf - Full Name</ns0:Request_ID>
。
我在SoapUI測試,我也成功打印響應,所以它沒有任何意義,價值爲空,除非當然我不正確地處理響應。我該怎麼辦?
ClassCastException異常:
java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl cannot be cast to org.w3c.dom.Node
at app.controller.TableViewController.printSOAPResponse(TableViewController.java:225)
at app.controller.TableViewController.initialize(TableViewController.java:67)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at app.Main.start(Main.java:14)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Thread.java:745)
沒有很好地形成的XML。你的開頭''標籤用' ns0:Get_People_Operation_CorporateIDResponse>'關閉。 –
這是一個轉錄錯誤。打印結果是一致的。對於那個很抱歉。 – santafebound
即使我解決了這個問題,我只是得到了類拋出異常。 –