0

我已将我的 maven 依赖项的范围更改为提供并手动复制到 tomcat/lib(以减少我的 war 文件大小)。

我的应用程序现在无法部署,出现可怕的内存不足错误。

 java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "http-bio-8080-exec-3

它是一个 java/spring/hibernate 应用程序。stacktrace 上的两个迭代错误

Dec 27, 2012 2:22:37 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [spring] in context with path [] threw exception [Handler processing failed; nested exception is java.lang.OutOfMemoryError: PermGen space] with root cause
java.lang.OutOfMemoryError: PermGen space

其次是

Dec 27, 2012 2:22:38 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [spring] in context with path [] threw exception [java.lang.ClassNotFoundException: org.apache.jsp.jsp.myLogin_jsp] with root cause
java.lang.ClassNotFoundException: org.apache.jsp.jsp.myLogin_jsp

这在我的 IDE 之外,当我使用 intellij 运行时它工作正常......?

在我的启动脚本中设置 CATALINA_OPTS 可以解决问题,为什么?

4

1 回答 1

5

添加例如 -XX:MaxPermSize=128M JVM 参数,看看发生了什么。

你做了一件有趣的事。这里有描述很快,战争会更小,但运行时内存消耗会更高。

于 2012-12-27T14:37:14.837 回答