错误和跟踪:
尝试在 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 solution至 this 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/