Tomcat配置Host出现内存溢出问题

哎 本来我不是做运维的 可是没办法啊

目前情况是在域名服务器那边绑定了域名和ip,但是绑定的是两个域名对应一个ip

ip这边是一台服务器,80端口是Tomcat,这就是说那边域名就会自动指向这边的Tomcat的ROOT项目

现在想让这两个域名分别指向同一个Tomcat下的不同项目,Google一下好像是“配置虚拟主机”的问题,我按着配了下,在conf/server.xml中增加如下代码:

[code="java"]

xmlValidation="false" xmlNamespaceAware="false">

[/code]

当然,如果在本地做实验的话需要在C:\WINDOWS\system32\drivers\etc下面的hosts文件中增加

127.0.0.1 www.dog123.com

我如此配置以后,运行服务器,访问http://www.dog123.com:8080/(Tomcat端口是8080,因为是在本地做实验,还没有上传服务器),报出内存溢出异常:

[code="java"]

严重: Servlet.service() for servlet jsp threw exception
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at org.eclipse.jdt.internal.compiler.Compiler.handleInternalException(Compiler.java:481)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:430)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:413)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
Exception in thread "http-8080-1" java.lang.OutOfMemoryError: PermGen space

[/code]

这是怎么回事啊?有懂这个的帮忙看下,谢谢大家了

1个回答

楼主,你这个问题我前面刚遇到过,在新增HOST后往往会加大TOMCAT内存占用量,所以默认的内存已经不够了。
解决方法:
[quote]
以下给出1G内存环境下java jvm 的参数设置参考: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
[/quote]
如果希望详细了解这个问题出现的原因,可以访问本文:
http://energykey.iteye.com/blog/505588

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问