Tomcat的参数配置及一般问题的解决
如何解决端口冲突导致tomcat无法启动的问题
Tomcat在启动时主要使用下面的3个端口
<Server port="8005" shutdown="SHUTDOWN" debug="0"> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080" minProcessors="5" maxProcessors="75"enableLookups="true" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="200000" useURIValidationHack="false" disableUploadTimeout="true" /> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8009" minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443" acceptCount="10" debug="0" connectionTimeout="20000" useURIValidationHack="false" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
端口被占用后的现象:
Ø8080端口被占用,tomcat刚开始启动就立即停止;
Ø8005端口被占用,tomcat启动后期停止;
Ø8009端口被占用,tomcat会自动使用下一个未被占用的端口,无启动问题。
如果想查看端口的使用状态,在win2000下使用命令netstat–na;在winXP/2003下使用命令netstat–nao;把tomcat端口修改为未使用的端口然后再启动。
2、修改java虚拟机内存
修改tomcat\bin\catalina.bat文件,在JAVA_OPTS变量使用前加入
set JAVA_OPTS=-Xms128m -Xmx256m
其中Xms为最小内存,Xmx为最大内存。
设定的最大内存可用如下命令测试:java-Xmx1048m-version
可以使用如下程序代码实现对内存的监控:
<% Runtime lRuntime = Runtime.getRuntime(); out.println("Free Memory: "+lRuntime.freeMemory()+"<br>"); out.println("Max Memory: "+lRuntime.maxMemory()+"<br>"); out.println("Total Memory: "+lRuntime.totalMemory()+"<br>"); %>
3、修改tomcat连接数
修改tomcat\conf\server.xml文件中的如下部分
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"port="8080" minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" useURIValidationHack="false" disableUploadTimeout="true" />
其中minProcessors为最小连接数;maxProcessors为最大连接数;acceptCount为允许最大连接数;connectionTimeout为网络连接超时时间毫秒数。
4、禁止列出目录下的文件
修改tomcat\conf\web.xml文件中的如下部分,把true设置为false。
<init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param>
5、设置session失效的时间
修改tomcat\conf\web.xml文件的如下部分,时间单位为分钟。
<session-config> <session-timeout>30</session-timeout> </session-config>
6、设置MIME响应类型
如果文件在客户端中的响应程序类型和期望不一致,修改tomcat\conf\web.xml文件中的如下部分。
<mime-mapping> <extension>zip</extension> <mime-type>application/zip</mime-type> </mime-mapping> <mime-mapping> <extension>mht</extension> <mime-type>message/rfc822</mime-type> </mime-mapping>
7、设置tomcat的默认访问页面
修改tomcat\conf\web.xml文件中的如下部分。
<welcome-file-list> <welcome-file>login.jsp</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
8、设置tomcat管理用户
修改tomcat\conf\tomcat-users.xml。
<tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="role1" password="tomcat" roles="role1"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="admin" password="" roles="admin,manager"/> </tomcat-users>
附:
1、Tomcat5.x与Tomcat4.x在解析提交表单时发生了变化,Tomcat4.x无论是post还是get,都使用相同的编码,而Tomcat5.x却把get方法单独了出来,具体可查看tomcat的sourcecode。
2、Tomcat5.x允许include的jsp页面重新定义解码方式(如下示例),而Tomcat4.x则不允许。
<%@pagecontentType="text/html;charset=GBK"%>
如何解决端口冲突导致tomcat无法启动的问题
Tomcat在启动时主要使用下面的3个端口
<Server port="8005" shutdown="SHUTDOWN" debug="0"> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080" minProcessors="5" maxProcessors="75"enableLookups="true" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="200000" useURIValidationHack="false" disableUploadTimeout="true" /> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8009" minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443" acceptCount="10" debug="0" connectionTimeout="20000" useURIValidationHack="false" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
端口被占用后的现象:
Ø8080端口被占用,tomcat刚开始启动就立即停止;
Ø8005端口被占用,tomcat启动后期停止;
Ø8009端口被占用,tomcat会自动使用下一个未被占用的端口,无启动问题。
如果想查看端口的使用状态,在win2000下使用命令netstat–na;在winXP/2003下使用命令netstat–nao;把tomcat端口修改为未使用的端口然后再启动。
2、修改java虚拟机内存
修改tomcat\bin\catalina.bat文件,在JAVA_OPTS变量使用前加入
set JAVA_OPTS=-Xms128m -Xmx256m
其中Xms为最小内存,Xmx为最大内存。
设定的最大内存可用如下命令测试:java-Xmx1048m-version
可以使用如下程序代码实现对内存的监控:
<% Runtime lRuntime = Runtime.getRuntime(); out.println("Free Memory: "+lRuntime.freeMemory()+"<br>"); out.println("Max Memory: "+lRuntime.maxMemory()+"<br>"); out.println("Total Memory: "+lRuntime.totalMemory()+"<br>"); %>
3、修改tomcat连接数
修改tomcat\conf\server.xml文件中的如下部分
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"port="8080" minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" useURIValidationHack="false" disableUploadTimeout="true" />
其中minProcessors为最小连接数;maxProcessors为最大连接数;acceptCount为允许最大连接数;connectionTimeout为网络连接超时时间毫秒数。
4、禁止列出目录下的文件
修改tomcat\conf\web.xml文件中的如下部分,把true设置为false。
<init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param>
5、设置session失效的时间
修改tomcat\conf\web.xml文件的如下部分,时间单位为分钟。
<session-config> <session-timeout>30</session-timeout> </session-config>
6、设置MIME响应类型
如果文件在客户端中的响应程序类型和期望不一致,修改tomcat\conf\web.xml文件中的如下部分。
<mime-mapping> <extension>zip</extension> <mime-type>application/zip</mime-type> </mime-mapping> <mime-mapping> <extension>mht</extension> <mime-type>message/rfc822</mime-type> </mime-mapping>
7、设置tomcat的默认访问页面
修改tomcat\conf\web.xml文件中的如下部分。
<welcome-file-list> <welcome-file>login.jsp</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
8、设置tomcat管理用户
修改tomcat\conf\tomcat-users.xml。
<tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="role1" password="tomcat" roles="role1"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="admin" password="" roles="admin,manager"/> </tomcat-users>
附:
1、Tomcat5.x与Tomcat4.x在解析提交表单时发生了变化,Tomcat4.x无论是post还是get,都使用相同的编码,而Tomcat5.x却把get方法单独了出来,具体可查看tomcat的sourcecode。
2、Tomcat5.x允许include的jsp页面重新定义解码方式(如下示例),而Tomcat4.x则不允许。
<%@ page contentType="text/html; charset=GBK" %>