如何解决端口冲突导致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
可以使用如下程序代码实现对内存的监控:
1. <%
2. Runtime lRuntime = Runtime.getRuntime();
3. out.println("Free Memory: "+lRuntime.freeMemory()+"<br>");
4. out.println("Max Memory: "+lRuntime.maxMemory()+"<br>");
5. out.println("Total Memory: "+lRuntime.totalMemory()+"<br>");
6. %>
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" %>
通常时候端口被占,我只是不停的去shutdown tomcat,然后再去任务管理器杀进程。这样通常也很好用,但是最近学到了一个比较科学的方法如下: 第一步查看一下是哪个进程在使用该端口使用如下命令:
批处理代码 netstat -ano | more
第二步找到是哪个进程使用如下命令:
Java代码
1. tasklist | more
第三步就可以关应用程序去了。
附:
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v]
-a 显示所有连接和监听端口。
-b 显示包含于创建每个连接或监听端口的可执行组件。在某些情况下已知可执行组件
拥有多个独立组件,并且在这些情况下包含于创建连接或监听端口的组件序列被显示。
这种情况下,可执行组件名在底部的 [] 中,顶部是其调用的组件,等等,直到 TCP/IP
部分。注意此选项可能需要很长时间,如果没有足够权限可能失败。 -e 显示以太网统计信息。此选项可以与 -s选项组合使用
-n 以数字形式显示地址和端口号。 此选项可以与 -a选项组合使用 -o 显示与每个连接相关的所属进程 ID。
-p proto 显示 proto 指定的协议的连接;proto 可以是
下列协议之一: TCP、UDP、TCPv6 或 UDPv6。
如果与 -s 选项一起使用以显示按协议统计信息,proto 可以是下列协议之一:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-r 显示路由表。
-s 显示按协议统计信息。默认地,显示 IP、
IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息; -p 选项用于指定默认情况的子集。
-v 与 -b 选项一起使用时将显示包含于为所有可执行组件创建连接或监听端口的组件
interval 重新显示选定统计信息,每次显示之间
暂停时间间隔(以秒计)。按 CTRL+C 停止重新
显示统计信息。如果省略,netstat 显示当前
在一个项目结束的时候往往根据需要直接映射到一个IP地址上此时就需要去除端口和项目名了在访问的时候下面根据具体的例子提供一种实现方法…
有时候把在myeclpise项目部署到tomcat中的时候会莫名其妙的发现tomcat启动不了换成是myeclpise自带的tom…
一在一个项目结束的时候往往根据需要直接映射到一个IP地址上此时就需要去除端口和项目名了在访问的时候下面根据具体的例子提供一种实现方…
前沿1如果之前安装了Oreacla在使用tomcat是会出现8080端口被占用的情况发生解决的方法就是对tomcat的端口进行配置…
lt一gt首先是JDK环境变量配置在Windows系统中1右击我的电脑gt属性gt高级gt环境变量gt系统变量2新建建立javah…
Tomcat修改默认端口以及Tomcat设置虚拟目录个人操作所获经验例虚拟目录改为Djsproot1建立Djsproot将tomc…
在一个项目结束的时候往往根据需要直接映射到一个IP地址上此时就需要去除端口和项目名了在访问的时候下面根据具体的例子提供一种实现方法…
我在tomcatwebapps下建了个myjsp目录作为我网站的默认目录在myjsp中有一个ajsp文件该文件要作为我网站的默认主…
tomcat因端口占用无法启动解决方法20xx0322223711分类技术分享标签tomcat端口占用解决方法8080jsp字号大…
前沿1如果之前安装了Oreacla在使用tomcat是会出现8080端口被占用的情况发生解决的方法就是对tomcat的端口进行配置…
Weblogic和Tomcat如何修改端口号20xx0413104410转载标签分类数据库it一Weblogic中端口号的修改1在…