5

我在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()
4

1 回答 1

4

基于对GregorSamsa.replace(). 它在 Windows 而不是 Solaris 上工作的事实可能是由于 JVM 的不同实现,或者更有可能是堆栈大小的默认 JVM 选项。

下面是 JVM堆栈大小选项的作用

这是在 Eclipse 中增加堆栈大小的方法。

以下是如何通过命令行设置堆栈大小以及有关此主题的更多讨论:

$ javac TT.java
$ java -Xss4m TT

-Xss4m = 4 兆
-Xss1024k = 1024kb

如果您想从应用程序中启动一个新线程,并且仅为该线程指定堆栈大小,请查看Thread 类的构造函数,包括:

public Thread(ThreadGroup group, Runnable target,String name,long stackSize)
于 2012-06-08T18:17:49.997 回答