gpt4 book ai didi

Java 方法适用于 1.5 但不适用于 1.6

转载 作者:太空狗 更新时间:2023-10-29 23:02:37 24 4
gpt4 key购买 nike

我有一个应用程序已经在 J​​ava 1.5 下愉快地运行了大约一年。我们刚刚更新了盒子并安装了 Java 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(source, result);”上崩溃了异常行:

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 所做的任何更改会导致这种情况?最简单的修复方法是什么?

感谢您的帮助。

最佳答案

我不记得它是在 1.4 和 1.5 之间还是在 1.5 和 1.6 之间,但是 Sun 的 JVM 附带的 Xalan 库更改了它们的包名称。大约 2 年前,我遇到了类似的事情。我认为我必须做的是明确发布我自己的 xalan 实现来解决问题。

更新:这可能是我的想法,尽管它仍然可能与您的问题有关link text

关于Java 方法适用于 1.5 但不适用于 1.6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1255427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com