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" %>

相关推荐