Tomcat(8005,8080,8009)端口占用问题常见原因及解决方法

Tomcat800580808009端口占用问题常见原因及解决方法

在企业版Eclipse中,在已经启动了Tomcat服务器后,准备运行页面或Servlet时,有时会出现这样的关于Tomcat服务器端口占用的问题:

“Several ports (8005, 8080, 8009) required by Tomcat v6.0 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).”

错误信息的大意是说Tomcat运行所需的那三个端口被被的程序占用了。

我个人遇到过的的原因大概有以下几种:

情况一:点击运行的时候没有选中页面或Servlet窗口的标签 情况如下图:

Tomcat800580808009端口占用问题常见原因及解决方法

Tomcat800580808009端口占用问题常见原因及解决方法

Tomcat800580808009端口占用问题常见原因及解决方法

仔细观察可知,左图其实并没有选中要运行的Servlet窗口的标签,因为标签是白色的,此时点击运行按钮的话相当于再启动一个服务器进程,端口当然是被原来那个已经启动的服务器给占了。而右图中Servlet窗口标签是蓝色的,说明已经被选中了,点击绿色的运行按钮后自然就是将这个Servlet装入已经启动的那个服务器运行,所以不会有像刚才那种端口占用的情况。

情况二:在硬盘的两个地方都有Tomcat 下面说说我碰到过的另一种情况,以前在

Tomcat800580808009端口占用问题常见原因及解决方法

D盘安装过一个

Tomcat800580808009端口占用问题常见原因及解决方法

Tomcat,后来因为有段时间不怎么用,就忽略了。再后来又开始做练习的时候,在C盘装了另一个Tomcat,并且在Eclipse中配置的时候也是默认选择了C盘的那个Tomcat。悲剧的是,因为原来在D盘的那个Tomcat我设成了开机启动,所以端口一开始就被它占着。因此,在Eclipse中启动Tomcat(C盘那个)时,就出现了端口占用的错误提示。

后来把D盘的Tomcat删除后,在Eclipse中就能正常运行页面了。

情况三:(8005,8080,8009)三个端口中的至少一个被其他程序占用 这种情况很难一下子看出来,不过反正就是要找出到底是哪个程序占用了这几个端口。可以在控制台里用“netstat -abn”命令查看正在运行的程序所占用的端口以及相关信息:

Tomcat800580808009端口占用问题常见原因及解决方法

可以看到,是"javaw.exe"这个程序占用了8009和8080端口,在资源管理器中把它结束掉就可以了。

Tomcat800580808009端口占用问题常见原因及解决方法

当然,还可能有其他情况导致的原因。慢慢探索吧。

 

第二篇:8080端口被占解决方法

一种方法:修改tomcat 端口。

另一种方法:查看占用85的端口是什么进程,将其杀掉就可以了, 0

| 评论

2009-7-26 19:51 爱珍之龙

8080端口被占解决方法

| 二级

如果端口被占得话,可以试试把Tomcat的端口号改一下!

| 评论

2009-8-6 16:36 问答无度

8080端口被占解决方法

| 一级

可以试试在任务管理器中把java.exe的进程关掉,再启动tomcat.

| 评论

----------------------------------------------------------------------------------------------------------------------

8080端口被其他的应用占用!

解决方案:

第一步,命令提示符号,执行命令:netstat –ano Active Connections

Proto Local Address Foreign Address State PID TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 656 TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 656

可见,占用8080端口的进程的PID是656

第二步,命令提示符号,执行命令:tasklist

图像名 PID 会话名 会话# 内存使用

========================= ====== ================ ======== ============

TNSLSNR.exe 656 Console 0 8,992 K

可见,该占用8080端口的进程是TNSLSNR.exe

第三步,通过任务管理器,终止进程TNSLSNR.exe

第四步,重新启动tomcat,即可正常启动

---------------------------------------------------------------------------------------------------------------------- 8080端口被占用的解决办法

8080端口,一般Tomcat、JBoss、Oracle默认都会使用这个端口!

所以就需要修改默认端口,让他们能一起协同工作。

《其实SQL2008中的“SQL Server Reporting Services (SQL2008)”服务如果自动启动的话也会占用8080端口,如果您暂时不使用SQL Server Reporting Services (SQL2008) 服务的话可以在“服务”里面先关掉,然后8080端口就会释放了就不用在修改默认端口了;》

1.Tomcat修改默认端口

1.1 找到:你的安装目录\Tomcat 5.5\conf\server.xml,搜索<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->,修改其中的port="8080"即可

2.JBoss修改默认端口号

2.1 修改JBoss安装目录"server"default"deploy"jboss-web.deployer下的server.xml文件,内容如下:

<Connector port="8080" address="${jboss.bind.address}"

maxThreads="250" maxHttpHeaderSize="8192"

emptySessionPath="true" protocol="HTTP/1.1"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true" />

将上面的8080端口修改为你想要的端口即可。重新启动

8080端口被占解决方法

JBoss后访问:http://localhost/:新设置的端口,可看到JBoss的欢迎界面。

(注:.Oracle我装的是10g,如果想停掉Oracle,需要在服务里停止OracleServiceJUN这一项,JUN是我的实例名)

----------------------------------------------------------------------------------------------------------------------

?

?

?

?

?

其他回答 QQ Music居然也看上了8080端口 Tomcat端口总被占用问题 Struts2+spring2.5.5+Hibernate3.1.1+外网访问内网的苹果茶+Mysq tomcat不能访问 启动Tomcat时报错

你可以修改端口啊,修改web.xml

<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" />

将port "8080"改成你的端口

zhaixoahu (中级程序员) 2009-07-15

QQ Music可能会占用8080端口

你查看下所有端口使用情况 就能发现是哪个程序在用8080

lovewhzlq (CTO) 2009-07-15

你是不是装了迅雷,或其它类似的东西。

huangnetian (架构师) 2009-07-15

我也觉得改端口比较好点8080端口被占用的情况还是有的..像跟ORACLE一起用的时候就会出问题....你改成8088,8899等等...

以下是我文件里的端口,见红色部分..在\tomcat-6.0.14\conf文件夹下的server.xml 第50行左右...

<Connector port="8088" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" URIEncoding ="UTF-8"/>

Rowen (资深程序员) 2009-07-15

找一个端口查看器(软件),看一下.

pan_java (资深程序员) 2009-07-15

用这个东西看看

引用

1.打开CMD. cmd

2.查找端口号的PID netstat -a -o (有了PID可以看看到底是很那个应用程序占用的)

3.强行关闭 ntsd -c q -p PID(查询出来的PID号码)

pJun (高级程序员) 2009-07-15

我以前也出现过这种情况

把服务关闭再重启应该就可以了

8080只要不是一直被占用就没必要改端口有时候改了也部行

----------------------------------------------------------------------------------------------------------------------

大家好:这个问题我不止遇到一次了,每次也找不到原因。稀里糊涂的。

不管我怎么改端口都说端口被占用,myeclipse重启,也没有用。

我进cmd用netstat

8080端口被占解决方法

查看端口,发现没有被占用啊。

在家里面 我实在没有办法了 我把tomcat重新安装之后就可以了。

我在公司是用的解压版。这个问题怎么解决?

还有一个问题 我解压版的tomcat怎么知道 开启后 敲http://localhost:8080/

我怎么知道用户名和密码呢?

谢谢,多多交流,共同进步!

----------------------------------------------------------------------------------------------------------------------

一种方法:修改tomcat 端口。

另一种方法:查看占用85的端口是什么进程,将其杀掉就可以了, 0

| 评论

2009-7-26 19:51 爱珍之龙

8080端口被占解决方法

| 二级

如果端口被占得话,可以试试把Tomcat的端口号改一下!

| 评论

2009-8-6 16:36 问答无度

8080端口被占解决方法

| 一级

可以试试在任务管理器中把java.exe的进程关掉,再启动tomcat.

----------------------------------------------------------------------------------------------------------------------

关键信息:

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

错误原因:

8080端口被其他的应用占用!

解决方案:

第一步,命令提示符号,执行命令:netstat –ano

Active Connections

Proto Local Address Foreign Address State PID

TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 656

TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 656

可见,占用8080端口的进程的PID是656

第二步,命令提示符号,执行命令:tasklist

图像名 PID 会话名 会话# 内存使用

========================= ====== ================ ======== ============

TNSLSNR.exe 656 Console 0 8,992 K

可见,该占用8080端口的进程是TNSLSNR.exe

第三步,通过任务管理器,终止进程TNSLSNR.exe

第四步,重新启动tomcat,即可正常启动

在此非常感谢原创作者

本文来自CSDN博客,转载请标明出处:/igotogoal/archive/2009/07/12/4342325.aspx

----------------------------------------------------------------------------------------------------------------------

netstat的全部参数及说明如下:

显示协议统计信息和当前 TCP/IP 网络连接。

NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]

-a 显示所有连接和监听端口。

-b 显示包含于创建每个连接或监听端口的

可执行组件。在某些情况下已知可执行组件

拥有多个独立组件,并且在这些情况下

包含于创建连接或监听端口的组件序列

被显示。这种情况下,可执行组件名

在底部的 [] 中,顶部是其调用的组件,

等等,直到 TCP/IP 部分。注意此选项

可能需要很长时间,如果没有足够权限

可能失败。

-e 显示以太网统计信息。此选项可以与 -s

选项组合使用。

-n 以数字形式显示地址和端口号。

-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 显示当前

配置信息(只显示一次)

----------------------------------------------------------------------------------------------------------------------

网站建设开发过程中,尤其是用tomcat的时候出现tomcat启动不起来多数情况是由于80端口被占用,那如何结束占用80端口的进程呢?

1、cmd打开运行窗口

输入netstat -ano会出现类似下图的数据窗口

8080端口被占解决方法

2

8080端口被占解决方法

、比如我们要结束tomcat的8080端口

由图8080的端口PID是2272,调出windows资源管理器可以看到PID2272被reportingservicesservice.exe进程占用,结束该进程,tomcat是不是启起来了呢?

--------------------------------------------------------------------------------------------------------------------------

conf目录下的server.xml

修改

<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->

<Connector className= "org.apache.coyote.tomcat4.CoyoteConnector " port= "80 " minProcessors= "5 " maxProcessors= "75 "

enableLookups= "true " redirectPort= "8443 "

acceptCount= "100 " debug= "0 " connectionTimeout= "20000 "

useURIValidationHack= "false " disableUploadTimeout= "true " />

相关推荐