Tomcat 技术支持

1. 环境配置

JAVA_HOME:D:/Program Files/Java/jdk1.6
CATALINA_HOME:D:/tomcat6
CLASSPATH:.;%JAVA_HOME%/lib;
      %CATALINA_HOME%/lib;
Path:%JAVA_HOME%/bin;
    %CATALINA_HOME%/bin;

 

2. 数据库连接池

<Resource name="jdbc/hzm" 
                auth="Container" 
                autoReconnectForPools="true"
                type="javax.sql.DataSource" 
                driverClassName="com.mysql.jdbc.Driver" 
                url="jdbc:mysql://localhost:3306/db_rent?autoReconnect=true"
                username="root" 
                password="root" 
                logAbandoned="true"
                maxActive="2000" 
                maxIdle="5" 
                maxWait="5000" />

 

3. 改端口

server.xml

 

4. session处理

<Manager className="org.apache.catalina.session.PersistentManager" >
    saveOnRestart="true"
</Manager> 

 

5. 设置默认应用

在server.xml <Host></Host>中添加 docBase请修改成tomcatwebapps目录之外的目录。 否则 访问http://localhost:8080访问http://localhost:8080/ms,得到的是相同的首页,但是其实是tomcat2contextresponse
<Context docBase="../ms" path="" debug="0" reloadable="true" crossContext="true"/> 

或者 修改tomcat ROOT目录的index.jsp,使其加载默认应用的首页,如此处应修改成如下

<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <title></title>
  <meta http-equiv="refresh" content="0;URL=<%=request.getContextPath()%>/ms/index.html">
  </head>
  <body>
  </body>
</html>

 

 

 6. TomCat 出现 OutOfMemoryError : PermGen space 解决方法

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。

改正方法,在 run.bat 中加入:-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

因为项目中引用了很多的 jar 包,而这些 jar 包中的 class 信息会被 JBoss 的 class loader 加载到 PermGen space 区域,在 JVM 默认的情况下,该部分空间的大小只有 4M,在 jar 包非常多的情况下,显然是不够用的,所以通过 -XX:MaxPermSize=256m 指定最大值后即可解决问题。

另外,如果 heap 内存不足出现 java.lang.OutOfMemoryError: Java heap space 时,可以通过 -Xmx512m 指定最大 heap 内存来解决这样的问题。

 

7. SEVERE: Exception loading sessions from persistent storage

java.io.EOFException

分析:EOFException表示输入过程中意外地到达文件尾或流尾的信号,导致从session中获取数据失败,其实就是保存在硬盘上的session数据读取失败。异常是tomcat本身的问题,由于tomcat上次非正常关闭时有一些活动session被持久化(表现为一些临时文件),在重启时,tomcat尝试去恢复这些session的持久化数据但又读取失败造成的。此异常不影响系统的使用,问题不大。但是如果不处理一下,每次启动都会出现这个问题。
解决方法:
将work下面的文件清空,主要是*.ser文件,或者只是删除掉session.ser亦可。

 

 

posted on 2013-04-24 09:05  hzm_frank  阅读(243)  评论(0编辑  收藏  举报

导航