xml转换上的java堆栈溢出异常
我在sun solaris中托管的weblogic server 10g中的xml转换中遇到以下java stackoverflow错误。这只会发生在特定的xml转换中,rest所有xml转换都可以正常工作。使用的xsl文件也不是很大
我正在使用rt.jar中提供的转换api,但从我尚未在应用程序中打包的xalan apache包(com.sun.org.apache.xalan.internal.xsltc.dom.SimpleResultTreeImpl
)中获取此错误。
另一件有趣的事情是,当我在windows机器上托管的weblogic 10g服务器上运行应用程序时,我没有遇到这个异常,我只在sun solaris中遇到了这个异常
有人能告诉我为什么我会犯这个错误吗
您能告诉我是哪个jar文件导致了异常吗?weblogic将拥有一个xalan。罐子如果是这样,我可以尝试升级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()
# 1 楼答案
根据对
GregorSamsa.replace()
的所有调用,这里似乎发生了一些递归。它在Windows而不是Solaris上工作的事实可能是由于JVM的不同实现,或者更可能是由于堆栈大小的默认JVM选项以下是JVM stack size option does的内容
以下是您如何increase the stack size in Eclipse.
以下是如何通过命令行set the stack size执行此操作,以及有关此主题的更多讨论:
-Xss4m=4兆欧
-Xss1024k=1024kb
如果您想从应用程序中启动一个新线程,并且只为该线程指定堆栈大小,请查看constructors for Thread class,包括: