我已经改变了我提供的maven依赖项的范围

时间:2012-12-27 14:18:45

标签: java spring tomcat maven

我已将myven依赖项的范围更改为已提供并手动复制到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可以解决问题,为什么?

1 个答案:

答案 0 :(得分:5)

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

你做了一件有趣的事。它被解雇了here。不久,战争会更小,但运行时内存消耗会更高。