Tomcat端口占用问题常见原因
当启动myEclipse的项目时,出现如下错误时
java.net.BindException: Address already in use: JVM_Bind<null>:8080
原因是:tomcat的8080的端口号被占用,
解决方法是:
将D:\Tomcat 6.0\conf下的server.xml文件中的
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
中的8080改为8081或者是任意一个非8080的数字,然后重新启动项目即可
其中D:\Tomcat 6.0\conf是tomcat的安装路径
错误提示:
严重: Error initializing endpoint
java.net.BindException: Address already in use: JVM_Bind:80
at org.apache..PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:258)
at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:143) at org.apache.coyote.tomcat5.CoyoteConnector.initialize(CoyoteConnector.java:1402)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:605)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:2369)
at org.apache.catalina.startup.Catalina.load(Catalina.java:507)
at org.apache.catalina.startup.Catalina.load(Catalina.java:528)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:247) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:421) 2006-2-8 16:36:37 org.apache.catalina.startup.Catalina load
严重: Catalina.start
LifecycleException: Protocol handler initialization failed: java.net.BindException: Address already in use: JVM_Bind:80
at org.apache.coyote.tomcat5.CoyoteConnector.initialize(CoyoteConnector.java:1404)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:605)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:2369)
at org.apache.catalina.startup.Catalina.load(Catalina.java:507)
.......................
原因分析:在dos下运行“netstat -a ”查看当前端口的使用情况。
解决方法:修改Tomcat的使用端口,具体做法——找到目录...\Tomcat 5.0\conf,在conf目录下有“server.xml”文件,用记事本打开此文件,查找(打开文件后Ctrl+F)文件中的所有“8080”,并改为其他没有被占用的端口值(如:8088、8081等)。
也可以在任务管理器中结束javaw 进程。
第二篇:tomcat配置多个端口
Tomcat 6.0 配置多个端口
一、Tomcat 安装后本身提供了一个server,端口配置默认是8080,对应目录为:..\Tomcat 6.0\webapps
二、Tomcat 6.0 配置多个端口,其实也就是给Tomcat增加几个server,并设置对应目录。下面以增加两个端口号为例
第一步、修改server.xml[..\Tomcat 6.0\conf]
(1)Tomcat提供的如下:
<Service name="Catalina">
<Connector port="8090" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
(2)比着上面的葫芦画下面的瓢、新增两个端口号,注意Service name、Engine name、appBase,
当然了,端口号别忘了修改,以免重复。
<Service name="Catalina1">
<Connector port="8091" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> <Engine name="Catalina1" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps1"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
<Service name="Catalina2">
<Connector port="8092" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" /> <Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> <Engine name="Catalina2" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps2"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
第二步、创建相应的部署目录
..\Tomcat 6.0\webapps1
..\Tomcat 6.0\webapps2
同时可以将Tomcat 6.0\webapps下的有用的复制到新建的部署目录 第三步、创建配置文件目录和配置文件
..\Tomcat 6.0\conf\Catalina1\localhost
..\Tomcat 6.0\conf\Catalina2\localhost
host-manager.xml
manager.xml
配置文件的配置可参照..\Tomcat 6.0\conf\Catalina\localhost下的,只需要修改一下对应目录即可
大概的配置步骤就是这些,现在可以把不同的war包放在不同的位置来访问了
以上配置方法同样适合Tomcat 5.5
搞了Tomcat6配置多虚拟主机很久,终于OK了。
真是够吐血的,记录下来,方便以后查阅了。
实现效果: 访问一个项目例如一个助学网。 访问一个项目例如一个办公系统
实现方案,需要修改两个地方
一个是C:\WINDOWS\system32\drivers\etc\hosts文件,改为
127.0.0.1 localhost
127.0.0.1 localhost1
另一个要改的就是server.xml,修改后如下:
Code
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true" debug="0">
<Context path="" docBase="E:\Tomcat6\webapps\YangFan\" reloadable="true" crossContext="true"/>
</Host>
<Host name="localhost1" appBase="webapps"
unpackWARs="true" autoDeploy="true" debug="0">
<Context path="" docBase="E:\Tomcat6\webapps\hiccOffice\" reloadable="true" crossContext="true"/>
</Host>
</Engine>
</Service>
</Server>
ok,重启tomcat6,就可以访问了,前提是保证写的路径正确。
如果本机已经申请了域名,那么只需要修改server.xml就可以。
只需要把localhost和localhost1分别改为不同的域名就OK了。十分的简单。
from:/mynetworktime/blog/item/1d21cd13c73b4758f819b8e7.html
问题:
1. 报 Caused by: Caught exception while loading file struts-default.xml 错
解决: 删除lib下的xerces-2.6.2.jar