如何解决端口冲突导致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、
Tomcat 5.x
与
Tomcat 4.x
在解析提交表单时发生了变化
,Tomcat 4.x
无论是
post
还是
get,
都使用相同的编码,而
Tomcat 5.x
却把
get
方法单独了出来,具体可查看
tomcat
的
source code
。
2、
Tomcat 5.x
允许
include
的
jsp
页面重新定义解码方式(如下示例),而
Tomcat4.x
则不允许。
<%@
page
contentType
=
"text/html; charset=GBK"
%>