控制台报错:
java.lang.OutOfMemoryError: PermGen space
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:883)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:773)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1324)
at org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:326)
at org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:305)
at org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:50)
at org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:207)
at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:169)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
代码报错位置(字符串可以看到json串,但是执行报内存溢出):
我是在本地tomcat8下面跑的,按照网上所说,我修改了catalina.bat文件增大内存,可可是貌似没有生效(如截图所示,本地tomcat数值一直没变),求助
catalina.bat 第一行修改了set JAVA_OPTS=-Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m,
:noJuliConfig
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"
JAVA_OPTS='-Xms512m -Xmx1024m'
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=512M -XX:MaxPermSize=2048m" 等等,没有用啊。。
分不多,都给你了,真心求教。(纯粹赋值张贴得别拿来了,我也上网搜了还没解决)
可以通过eclipse等开发工具对服务内存进行调整,如上图所示。
可复制版代码如下:
-Xmx512m -Xmx512m -XX:MaxNewSize=256M -XX:MaxPermSize=256M
你换个tomcat7或者6试一试呢,都会内存溢出嘛
你是什么平台,win还是linux
你的环境是Linux还是Windows?
这是我遇到问题解决的记录:http://blog.csdn.net/testcs_dn/article/details/44080769
JAVA_OPTS="-server -Xms256m -Xmx1024m -XX:MaxNewSize=256m -XX:PermSize=64M -XX:MaxPermSize=128M"
你上面的配置写法有点问题,覆盖了值,用上面的吧。
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。
我是在本机windows开发环境,调试遇到的,所以@java仔 1楼完美解决了我本地调试问题;
当我部署到linux服务器时候,又出现这个问题,这时候我在linux的tomcat/bin目录增加了一个文件,setenv.sh; 内容为:JAVA_OPTS="-Xms2048m -Xmx4096m -Xss2048K -XX:PermSize=512m -XX:MaxPermSize=1024m",我想catalina.sh在读取时候也会读取setenv.文件配置,事实确实如此,解决! (估计和 @微wx笑 原理差不多 )
最后感谢各位!