Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]"

Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" 
java.lang.OutOfMemoryError: PermGen space
 

原因:

PermGen space的全称是Permanent Generation space,
是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,
Class在被Loader时就会被放到PermGen space中,
它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)
不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话,
就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。
如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
 

解决方法1: 

手动设置MaxPermSize大小,如果是linux系统,修改TOMCAT_HOME/bin/catalina.sh,如果是windows系统,修改TOMCAT_HOME/bin/catalina.bat,
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
 解决方法2

修改eclipse.ini文件,修改如下:


-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx512m
-XX:PermSize=64M 
-XX:MaxPermSize=128M

如果还报错,可以考虑如下修改


-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512m
-Xmx1024m
-XX:PermSize=256M 
-XX:MaxPermSize=512M

 转:http://www.cnblogs.com/xwdreamer/archive/2011/11/21/2296930.html

### Tomcat 部署 Web 应用的日志说明 Tomcat 的日志记录功能对于排查问题和监控应用运行状态至关重要。以下是关于 Tomcat 日志的相关信息: #### 1. **默认日志文件位置** 默认情况下,Tomcat 将其日志存储在 `logs` 文件夹中,该文件夹位于 Tomcat 安装目录下。主要的日志文件包括: - `catalina.out`: 记录标准输出和错误输出的信息[^5]。 - `localhost.<date>.log`: 记录特定于主机的应用程序日志消息。 - `manager.<date>.log`: 如果启用了 Manager 应用程序,则此文件会记录管理操作(如部署、卸载应用程序)的日志。 #### 2. **Manager Application Deployment Logs** 当通过 Tomcat 的 Manager 应用程序部署 Web 应用时,相关的日志会被写入到 `manager.<date>.log` 中。这些日志通常包含以下内容: - 成功或失败的部署尝试。 - 错误堆栈跟踪(如果发生异常)。 - 时间戳以及执行的操作详情。 下面是一个典型的日志条目示例: ``` INFO: Deploying configuration descriptor /path/to/webapp.xml from tomcat-users.xml SEVERE: Failed to deploy web application archive /path/to/mywebapp.war due to missing permissions. ``` #### 3. **如何查看日志** 要查看上述日志文件的内容,可以使用命令行工具或者图形化编辑器打开它们。例如,在 Linux 系统上可以通过以下方式访问日志: ```bash tail -f $CATALINA_HOME/logs/catalina.out ``` 这样可以实时观察日志的变化。 #### 4. **常见错误及其解决方法** 在某些情况下,可能会遇到类似于 “Address localhost : 1099 is already in use”的错误[^2]。这种问题是由于端口冲突引起的,可能有其他服务正在占用指定的 JMX 或 AJP 端口。解决方案如下: - 修改 `server.xml` 文件中的 `<Connector>` 元素来更改端口号[^4]。 ```xml <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/> ``` - 使用 netstat 命令查找并终止占用端口的服务进程: ```bash sudo lsof -i :1099 kill -9 PID ``` #### 5. **验证部署是否成功** 测试 Tomcat 是否正常工作的一个简单方法是在浏览器地址栏输入 URL:`http://localhost:8080/`。如果页面显示 Tomcat 的欢迎界面,则表明服务器已正确启动。 ```python import requests response = requests.get('http://localhost:8080/') if response.status_code == 200: print("Tomcat server started successfully.") else: print(f"Failed with status code {response.status_code}.") ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值