我有一個應用程序,它在Java 1.5下快樂地運行了大約一年。我們剛剛更新了這些框並安裝了Java 1.6。Java方法工作在1.5但不是1.6
部署應用到新的服務器後,我們已經找到了應用程序時,它試圖改變一些XML拋出異常。我們不明白爲什麼會發生這種情況,直到我們在本地部署併發生同樣的情況。將SDK更改爲v1.5後,問題停止並且應用程序正常運行。
這裏的方法的源:
import java.io.StringWriter;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
public static String xmlToString(Node node) {
try {
Source source = new DOMSource(node);
StringWriter stringWriter = new StringWriter();
Result result = new StreamResult(stringWriter);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.transform(source, result);
return stringWriter.getBuffer().toString();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
return null;
}
它拍擊 「transformer.transform(源,結果);」與異常行:
Exception in thread "main" java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.getXmlStandalone()Z
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.setDocumentInfo(DOM2TO.java:373)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:127)
at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:94)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:662)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:708)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
有誰知道這將導致這兩個版本對Java所做的任何更改?什麼是最簡單的修復?
感謝您的幫助。
看來您的類路徑中某處存在衝突的Xerxes實現。 – akarnokd 2009-08-10 15:07:15
什麼xml相關的jar包在你的類路徑中? – Yishai 2009-08-10 15:38:49