Tomcat 在启动时抛出 OutOfMemoryError

标签 tomcat jvm tomcat7

错误和跟踪:

尝试在 Windows 32 位计算机上启动 Tomcat 7.0.28 时,我看到以下 OutOfMemoryError 错误:

SEVERE: Error waiting for multi-thread deployment of WAR files to complete
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap s
pace
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:188)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:752
)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472
)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1413)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
:313)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBa
se.java:90)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase
.java:401)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:34
6)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.ja
va:1159)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java
:785)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.
java:1595)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.
java:1585)
...

如果您需要更多跟踪信息,请告诉我。

我尝试过的:

我试着关注this solutionthis question about my OutOfMemoryError但都没有成功。更具体地说,遵循 catalina.sh...

中的指令
#   Do not set the variables in this script. Instead put them into a script
#   setenv.sh in CATALINA_BASE/bin to keep your customizations separate.

...我在 CATALINA_BASE/bin 中创建了 setenv.sh。该文件的全部内容是:

SET CATALINA_OPTS="$CATALINA_OPTS -Xms512M -Xmx1024M"

重新启动服务器后,我看到了同样的错误。有什么帮助吗?谢谢。

最佳答案

您说您使用的是 Windows,但您创建了一个 Unix shell 脚本“.sh”。将其重命名为“.bat”。设置命令应如下所示:

SET "CATALINA_OPTS=%CATALINA_OPTS% -Xms512m -Xmx1g -XX:MaxPermSize=256m"

关于Tomcat 在启动时抛出 OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26740763/

相关文章:

eclipse - 如何从 eclipse 的 tomcat 插件更改 tomcat 的端口

Java(Java声音): Is "clip.play()" an expensive call?

java - 在 tomcat websockets 中向单个客户端发送消息

iis - 从 IIS 重定向到 tomcat?

java - 从 EC2 访问 UK API

java - 在 Java 中使用直接内存的目的是什么?

grails - session 超时后重定向(Grails、Spring Security Core、Tomcat)

java - 将大字符串数组(base64 图像)发送到休息服务给出错误(使用 tomcat7)

java - 避免tomcat状态报告

java - 如何使用 MemoryPoolMXBean