【问题标题】:Tomcat says OutOfMemoryError every time when I visit JasperServer application deployed to wepapps每次访问部署到 wepapps 的 JasperServer 应用程序时,Tomcat 都会说 OutOfMemoryError
【发布时间】:2026-01-15 14:30:01
【问题描述】:

我通过官方文档在Windows 7中安装了jasperserver(版本:5.6),使用现有的Tomcat(版本:7)和现有的PostgreSQL(版本:9.2.8),我检查了JasperServer的installation.log文件安装路径,一切正常。 但是当我通过双击“Tomcat.exe”启动 Tomcat 时,它总是说以下错误:

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "RMI TCP Connection(idle)"

我搜索了这些问题,有人说要在 %CATALINA_HOME%\bin\setenv.bat 或 %CATALINA_HOME\bin\%catalina.bat 中配置 JVM 选项,但我找不到其中任何一个。我认为这是因为我正在使用现有的 Tomcat,并且 JasperServer 的安装修改了 %CATALINA_HOME% 中的一些文件。所以我从 %JasperServer% 中搜索了 'setenv.bat' 并在 %JasperServer%\scripts 中找到它。这是我的配置:

set JAVA_OPTS=%JAVA_OPTS% -Xms2048m -Xmx3072m -XX:PermSize=1024m -XX:MaxPermSize=2048m -Xss2m -XX:+UseCompressedOoops -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled         

另外,我确实遵循了官方文档here,没有任何帮助,错误存在。

有人遇到过同样的问题吗?我应该怎么办?我真的需要帮助。谢谢。

【问题讨论】:

    标签: java tomcat out-of-memory jasperserver


    【解决方案1】:

    您指定的内存参数好像没有被拾取?检查一下,例如通过查看类似于以下示例的进程表:

    ivos-mbp:demo ivomagi$ jps
    1562 start.jar
    1572 Jps
    my-mbp:demo me$ ps axu 1562
    USER      PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
    me  1562   0.2  2.8  2965576 230784 s001  S    12:17PM   0:22.62 /usr/bin/java -Dcom.sun.management.jmxremote -Xmx168m
    

    如果您在打印输出中没有看到指定的 -Xmx3072m,您需要仔细检查从哪里加载配置。

    【讨论】:

    • 感谢您的快速回复,抱歉回复晚了,但我在 Windows 系统上运行 JasperServer,所以无法运行 ps axu 命令。再次感谢您的回复。
    【解决方案2】:

    请设置CATALINA_OPTS 而不是JAVA_OPS。 Tomcat在开头引用CATALINA_OPTS

    set "CATALINA_OPTS= -Xms2048m -Xmx3072m -XX:PermSize=1024m -XX:MaxPermSize=2048m -Xss2m -XX:+UseCompressedOoops -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled"    
    

    【讨论】:

      最近更新 更多