1
下面是示例碼塊投擲AbstractMethodError
:AbstractMethodError上Node.getTextContent()
import org.w3c.dom.Node;
..
Node root = soapBody.getElementByTagNameNS("http://xxx.xxx/Schema/v9", "Result").item(0); //Namespace
for (int i = 0; i < root.getChildNodes().getLength(); i++) {
Node child = root.getChildNodes().item(i); //Set to SubResult
String result = child.getTextContent(); //Throws error
}
樣品皁響應:
soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/><soapenv:Body><a1:Response xmlns:a1="http://xxx.xxx/Schema/v9"><a1:SubResult>50</<a1:SubResult></a1:Response></soapenv:Body></soapenv:Envelope>
錯誤拋出:
java.lang.AbstractMethodError: org.apache.axis.message.MessageElement.getTextContent()Ljava/lang/String;
Java版本使用:1.5
的Tomcat版本 - 6.0.41
經過org.w3c.dom.Node for 1.5,它確實有方法getTextContent()
有什麼能爲這個錯誤的可能原因是什麼? 此外,爲什麼會出現:org.apache.axis.message.MessageElement
而不是org.w3c.Node
?
謝謝@Jens!我有點困惑。實際的代碼不僅有'getTextContent()',而且還有其他函數,如:getChildNodes(),hasChildNodes(),getNodeName()另外,當你說版本不匹配時,你指的是哪個jar版本? – allout
罐子,其中包含類/接口 –
只有一個包含org.w3c.dom.Node。然而,就像我前面提到的那樣,'getTextNode()'是唯一不起作用的,Java 1.5已經有了這個方法。 – allout