Ash*_*ose 5 java xml stack-overflow xslt
我在sun solaris 中托管的weblogic server 10g 中的 xml 转换中收到以下 java stackoverflow 错误。这仅发生在特定的 xml 转换中,其余所有 xml 转换都可以正常工作。使用的 xsl 文件也不是很大。
我正在使用 rt.jar 中提供的 Transformation api,但是从com.sun.org.apache.xalan.internal.xsltc.dom.SimpleResultTreeImpl
我没有打包到我的应用程序中的xalan apache package( )得到这个错误。
另一个有趣的事情是,当我在 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()
Run Code Online (Sandbox Code Playgroud)
根据对 的所有调用,此处似乎发生了一些递归GregorSamsa.replace()
。它在 Windows 上运行而不是在 Solaris 上运行的事实可能是由于 JVM 的不同实现或更可能是由于堆栈大小的默认 JVM 选项所致。
以下是 JVM堆栈大小选项的作用。
以下是如何通过命令行设置堆栈大小以及有关此主题的更多讨论:
$ javac TT.java
$ java -Xss4m TT
Run Code Online (Sandbox Code Playgroud)
-Xss4m = 4 兆
-Xss1024k = 1024kb
如果您想从应用程序启动一个新线程,并仅为该线程指定堆栈大小,请查看Thread 类的构造函数,包括:
public Thread(ThreadGroup group, Runnable target,String name,long stackSize)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2631 次 |
最近记录: |