【发布时间】:2012-06-09 17:41:25
【问题描述】:
我在 sun solaris 中托管的 weblogic server 10g 中的 xml 转换中收到以下 java stackoverflow 错误。这只发生在特定的 xml 转换中,其余所有 xml 转换都可以正常工作。使用的xsl文件也不是很大。
我正在使用 rt.jar 中提供的 Transformation api,但从我没有打包在我的应用程序中的 xalan apache 包 (com.sun.org.apache.xalan.internal.xsltc.dom.SimpleResultTreeImpl) 中收到此错误。
另一个有趣的事情是,当我在 Windows 机器上托管的 weblogic 10g 服务器中运行应用程序时,我没有得到这个异常,我只在 sun solaris 中得到这个。
谁能告诉我为什么会出现这个错误。
你能告诉我是哪个 jar 文件导致了异常吗? weblogic 会有 xalan.jar 吗?如果是这样,我可以尝试升级 jar 文件,看看它是否工作?
Caused by: java.lang.StackOverflowError
at com.sun.org.apache.xalan.internal.xsltc.dom.SimpleResultTreeImpl.characters(SimpleResultTreeImpl.java)
at com.sun.org.apache.xalan.internal.xsltc.dom.SimpleResultTreeImpl.copy(SimpleResultTreeImpl.java:438)
at com.sun.org.apache.xalan.internal.xsltc.runtime.BasisLibrary.copy(BasisLibrary.java:1317)
at GregorSamsa.replace()
at GregorSamsa.replace()
at GregorSamsa.replace()
at GregorSamsa.replace()
at GregorSamsa.replace()
at GregorSamsa.replace()
at GregorSamsa.replace()
at GregorSamsa.replace()
at GregorSamsa.replace()
at GregorSamsa.replace()
at GregorSamsa.replace()
at GregorSamsa.replace()
at GregorSamsa.replace()
【问题讨论】:
-
好吧,如果没有 XSL 和示例 XML,任何人都很难提供帮助。罪魁祸首看起来像
GregorSamsa类。 -
GregorSamsa 已经变成了一个错误!?
-
执行应该是一样的,所以如果在solaris上不同,可能你的classpath/settings不同:你更新了所有other jars ,配置文件等在solaris上?检查您的环境是否相互匹配,而不仅仅是包含您的代码的 jar。
-
如果可用 RAM 太低,可能会发生此错误。 Solaris 机器的 RAM 是否小于转换成功运行的机器上的 RAM?此外,还应该有定义可用堆栈和堆空间的运行时参数——两个不同平台上的默认值可能非常不同。
-
一些事情。如果 xml 是高度嵌套和/或巨大的,我可能会看到堆栈溢出。其次,更有可能的是,您在其中一个环境中使用了不正确的 jar 版本。请注意,这并不意味着最新的 jar。
标签: java xml xslt stack-overflow