我遇到了Tomcat的一些问题。我正在部署Grails应用程序,当我添加新功能时,我在stacktrace文件中得到了这个(遗憾的是)错误:
Caused by: java.lang.OutOfMemoryError: PermGen space
2014-01-13 19:28:35,753 [http-bio-8080-exec-26] ERROR StackTrace - Full Stack Trace:
org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.OutOfMemoryError: PermGen space
at gsp_liquidaciones_liquidacionDeComplejolist_gsp$_run_closure2.doCall(gsp_liquidaciones_liquidacionDeComplejolist_gsp.groovy:84)
at gsp_liquidaciones_liquidacionDeComplejolist_gsp.run(gsp_liquidaciones_liquidacionDeComplejolist_gsp.groovy:105)
at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:195)
at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
...
我有一个基于Windows安装程序的tomcat安装,我也没有catalina.bat文件。谷歌搜索许多页面建议修改此文件(catalina.bat)或注册JAVA_OPTS变量,但没有任何作用。那么,我在哪里必须指定这些参数?:
SET JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC”
我尝试通过Apache Tomcat 7 Properties窗口修改Java Options,但修改后服务器无法启动。
我的电脑安装了4Gb RAM。
提前致谢。
答案 0 :(得分:8)
对于以下系统规范:
可接受行为的Tomcat 7 Java属性可能是:
答案 1 :(得分:2)
当tomcat作为Windows服务安装时,你应该有一个小的Windows应用程序'tomcat6w.exe'或'tomcat7w.exe'。当您启动此应用程序时,它有一个标签'Java',您可以在其中设置JVM参数。有关详细信息,请参阅more memory to Tomcat service。
您只需输入以-X开头的参数。
答案 2 :(得分:2)
这项工作适用于 apache-tomcat-8.0.15 ,但我认为对tomcat的所有版本来说都是一样的。
我执行了regedit并找到了这条路:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tomcat8
将ImagePath密钥更改为:
C:\apache-tomcat-8.0.15\bin\tomcat8.exe //RS//Tomcat8 ++JvmOptions -XX:PermSize=128m -XX:MaxPermSize=512m