`

java.net.BindException: Address already in use: JVM_Bind:8080

阅读更多
1:Tomcat启动时控制台报错如下示:
2007-8-2 15:20:43 org.apache.coyote.http11.Http11Protocol init
严重: Error initializing endpoint
java.net.BindException: Address already in use: JVM_Bind:8080
2007-8-2 15:20:43 org.apache.catalina.startup.Catalina load
严重: Catalina.start
LifecycleException: Protocol handler initialization failed: java.net.BindException: Address already in use: JVM_Bind:80
2007-8-2 15:20:46 org.apache.coyote.http11.Http11Protocol start
严重: Error starting endpointjava.net.BindException: Address already in use: JVM_Bind:80
2007-8-2 15:20:46 org.apache.catalina.startup.Catalina start
严重: Catalina.start:
LifecycleException: Protocol handler start failed: java.net.BindException: Address already in use: JVM_Bind:8080

2007-8-2 15:20:46 org.apache.catalina.startup.Catalina start
信息: Server startup in 2922 ms

这说明80端口(该端口是Tomcat的监听端口)已经被其他程序占用,先用命令提示符 " netstat -ano " 命令显示端口状态,再在结果中找到端口,然后根据其 PID 在输入 “ tasklist ” 命令显示中查找其对应程序,就可知道其程序名,进而查明程序的来源,采取适当的措施。

方法可以采用如下:

用netstat -ano 命令结果:
Proto Local Address          Foreign Address        State           PID
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       2544
TCP    0.0.0.0:100            0.0.0.0:0              LISTENING       2544
TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       1404
TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
TCP    0.0.0.0:1110           0.0.0.0:0              LISTENING       228
TCP    127.0.0.1:1025         0.0.0.0:0              LISTENING       1052
TCP    127.0.0.1:1159         127.0.0.1:1110         CLOSE_WAIT      2992
TCP    127.0.0.1:1297         127.0.0.1:1110         CLOSE_WAIT      2992
TCP    127.0.0.1:1324         127.0.0.1:1110         CLOSE_WAIT      2992
可见80端口被PID 为2544的进程占用了。

2.Oracle 安装后 8080和80端口被占用的解决办法
可能在本地同时安装过Tomcat和Oracle的人都会知道,安装完Oracle后,会发现Tomcat的8080端口已经被Oracle占用了。

其实那是Oracle的一个XML数据库服务占用了8080端口,可以使用sys账号以sysdba身份登录进去,用以下语句更改掉Oracle所占用的端口:

Oracle 9i:call   dbms_namespace.shell('@jis/install/serverendp.ssh   admin   8080   9090   -register');

Oracle 10g:call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),'/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',9090));

注意:以上语句是更改Oracle XML数据库端口为9090,你可以改为其它空闲的端口。执行以上命令要以sysdba身份进行登陆。

解决80端口占用的办法:

两种方法:

第一:修改目录oracle\Apache\Apache\conf中的两个文件:httpd.conf、httpd.conf.default,将文件中的端口由80改为8080即可将Apache的应用端口改为81端口,重新启动Apache,Web就能使用80端口了,此时Apache使用的是81端口。
若你不知道Apache如何重启,就重新启动你的计算机,重启后,问题应当解决。

第二:停止apache服务。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics