解决Tomcat在WTP出现的java.lang.OutOfMemoryError问题

分类:Tech | 作者:Shoopman | 发表于2009/04/15 没有评论  

现在项目开发工具用的是eclipse ganymede for jee,自带了WTP。开发期间,webapp是部署到tomcat里。由于某些原因,tomcat用的还是5.0.28版。

现在这个webapp引用了一堆有用没用的jar,共计142个50多M。于是问题来了,当tomcat启动后,访问一个jsp,控制台报了类似一下的异常:

2009-02-05 17:30:32,125 ERROR [org.apache.jasper.compiler.Compiler] -
Compile failed; see the compiler error output for details.
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:944)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:764)
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:382)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
… …
2009-02-05 17:30:32,125 ERROR [org.apache.jasper.compiler.Compiler] -
classpath=/D:/Tomcat/webapps/cos/WEB-INF/classes/;
/D:/Tomcat/webapps/cos/WEB-INF/lib/activation.jar;
(D:/Tomcat/webapps/cos/WEB-INF/lib下的所有jar包)
… …

2009-02-05 17:30:32,125 ERROR [org.apache.jasper.compiler.Compiler] -
系统资源不足。
有关详细信息,请参阅以下堆栈追踪。
java.lang.OutOfMemoryError: Java heap space

解决办法:菜单RunDebug Configurations打开Debug配置窗口,在左边选中所用的Tomcat Server,再在右边切换到Arguments,在VM arguments中加入参数如“-Xms128m -Xmx256m”,来设置Tomcat使用的JVM的内存大小,如下图,接着点“Apply”按钮保存设置吧。