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

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

在企业版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窗口的标签

情况如下图:

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

情况二:在硬盘的两个地方都有Tomcat

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

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

情况三:(8005,8080,8009)三个端口中的至少一个被其他程序占用

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

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

就可以了。

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

使用URL跳转解决Web服务80端口被封问题Word版

使用URL跳转解决Web服务80端口被封问题随着宽带的普及,很多用户都喜欢使用ADSL路由器几个人一起共享上网。因为这样不仅上网的费用降低了,还可以和别人分享自己电脑上的各种资源。但是,许多宽带用户的ADSL路由器都没有修改默认的密码,使得黑客很容易就盗取到ADSL拨号的帐号密码用并来消费,给用户带来很大的损失。 例如,TP-LINK路由器的默认密码一般是”admin”,黑客可以使用它登陆到没有修改默认密码的TP-LINK路由器上,盗取用户的ADSL帐户和密码,然后到互连星空进行买Q币、看收费电影等消费。为此,不少用户都把这种情况投诉到了宽带运营商,而一些拨号接入宽带运营商为了避免这种情况的发生,从2004年开始逐渐在接入服务路由器上封闭互联网访问接入线路的80端口,作为解决问题的方法。 1.众所周知,Web服务是用80端口来通讯的。HTTP端口被封闭后,对于一般的上网用户是不会体现出来的,因为封锁的方向对于用户层面是IN,而用户通过浏览器打开网站进行访问的方向为OUT。可是,有不少的个人或公司采用在接入线路加上一台普通的兼容PC的方式来搭建互联网服务器,例如把公司的各种产品介绍做成一个Web站点,或建立个人的生活BLOG、相册等,以达到节省成本以及获得更高的性价比的目的。当宽带接入商封闭了IN方向的80端口后,互联网就访问不到用户服务器中的Web服务了。宽带运营商此举因此受到了互联网用户多方面的评击:到底封闭HTTP IN端口是为了避免粗心大意的用户造成损失,还是要大力推动服务器托管市场的发展呢?答案也只有宽带接入商自己才知道。 作为普通用户,Web IN方向端口被封闭后,我们只能改用其它端口向互联网提供Web服务。但问题随之而来了:更改WEB服务端口后,外网用户在访问该域名时,得必须在域名后加上端口号才能连接到WEB服务器,例如

Tomcat配置连接池常见错误及解决 - 天涯浪子 - CSDNBlog

Tomcat配置连接池常见错误及解决- 天涯浪子- CSDNBlog Tomcat配置连接池常见错误及解决收藏 1 、Cannot create JDBC driver of class '' for connect URL '' 问题:找不到jdbc 驱动,但是提示信息里的class 值为null ,所以,可以断定Tomcat 没有找到Server.xml 里的Resource 配置信息。可能的原因包括: (1 )没有配置Resource ; (2 )Resource 配置信息放置的位置错误。 (3 )一个不容易发现的错误,driverClassName 和url 拼写错误。 解决办法:确认Resource 配置正确,并且必须放在DefaultContext 或者Context 配置节内。 2 、Cannot create JDBC driver of class 'xxx' for connect URL '' 解决办法:配置的数据库驱动类名xxx 是错误的,检查并修改即可;如果确认正确,那就是找不到驱动库,拷贝一个jar 到Tomcat/common/lib 中即可。 3 、Cannot create JDBC driver of class '' for connect URL 'xxx'

解决办法:配置的url 字符串语法是错误的,检查后修改即可。 4 、Cannot create PoolableConnectionFactory, cause: Io 异常: Connection refused 问题:无法创建连接池工厂对象,原因是连接被拒绝。 解决办法:检查url 字符串,可能服务器地址、端口、数据库名或者数据库实例名等信息错误。修改。 5 、No suitable driver 没有匹配的驱动 分析:驱动程序配置错误,请确认Tomcat 的common/lib 子目录中是否有数据库驱动jar 。 6 、Cannot create resource instance 无法创建数据源实例 问题:找不到commons-dbcp-1.1.jar (版本可能不同) 解决办法:复制commons-dbcp-1.1.jar 库文件到 Tomcat/Common/lib 子目录中。 7 、root cause : https://www.360docs.net/doc/595333261.html,ng.NoClassDefFoundError: org/apache/commons/collections/CursorableLinkedList 问题:找不到commons-collections.jar 。

Oracle占用端口解决办法

Oracle占用端口解决办法 1、是谁占用了80端口。netstat命令就可完成这个任务:netstat -anb 。 2、W3SVC 服务无法绑定实例 1、返回数据是错误代码。 2、端口被占用 3、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的应用

端口被占用如何解决

端口被占用如何解决 经常,我们在启动应用的时候发现系统需要的端口被占用,如何知道谁占有了该端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用 假如我们需要确定谁占用了我们的8080端口 1.可通过cmd ----》netstat -ano 指令查看所有的端口占用情况 C:\Users\Administrator>netstat -ano 活动连接 协议本地地址外部地址状态PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 472 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:801 0.0.0.0:0 LISTENING 9524 TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 2416 TCP 0.0.0.0:5001 0.0.0.0:0 LISTENING 9524 TCP 0.0.0.0:7879 0.0.0.0:0 LISTENING 4860 TCP 0.0.0.0:8009 0.0.0.0:0 LISTENING 9524 TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 9524 TCP 0.0.0.0:49152 0.0.0.0:0 LISTENING 536 TCP 0.0.0.0:49153 0.0.0.0:0 LISTENING 1052 TCP 0.0.0.0:49157 0.0.0.0:0 LISTENING 616 TCP 0.0.0.0:49160 0.0.0.0:0 LISTENING 1116 TCP 0.0.0.0:49172 0.0.0.0:0 LISTENING 600 TCP 0.0.0.0:49202 0.0.0.0:0 LISTENING 2100 TCP 3.3.10.190:139 0.0.0.0:0 LISTENING 4 TCP 3.3.10.190:51248 10.1.1.3:9090 ESTABLISHED 4860 TCP 3.3.10.190:52308 10.10.34.22:80 ESTABLISHED 1280 TCP 127.0.0.1:4300 0.0.0.0:0 LISTENING 7060 TCP 127.0.0.1:4301 0.0.0.0:0 LISTENING 7060 TCP 127.0.0.1:8005 0.0.0.0:0 LISTENING 9524 TCP 127.0.0.1:8411 0.0.0.0:0 LISTENING 952 TCP 127.0.0.1:20001 0.0.0.0:0 LISTENING 2620 TCP 127.0.0.1:27382 0.0.0.0:0 LISTENING 3116 TCP 127.0.0.1:49220 127.0.0.1:62522 ESTABLISHED 4328 TCP 127.0.0.1:49392 127.0.0.1:49393 ESTABLISHED 4860 TCP 127.0.0.1:49393 127.0.0.1:49392 ESTABLISHED 4860 TCP 127.0.0.1:50176 127.0.0.1:50177 ESTABLISHED 4860 TCP 127.0.0.1:50177 127.0.0.1:50176 ESTABLISHED 4860 TCP 127.0.0.1:50183 127.0.0.1:50184 ESTABLISHED 6512 TCP 127.0.0.1:50184 127.0.0.1:50183 ESTABLISHED 6512 TCP 127.0.0.1:50437 127.0.0.1:50438 ESTABLISHED 4860

[错误]TOMCAT启动报错Socket bind failed等解决方法

[错误]TOMCAT启动报错Socket bind failed等解决方法 应该是你的要监听的端口被占用了。 在命令行(cmd)下运行netstat -anb 看看启动的时候报错内容严重: Error starting https://www.360docs.net/doc/595333261.html,ng.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??at https://www.360docs.net/doc/595333261.html,.AprEndpoint.init(AprEndpoint.java:6 12)at https://www.360docs.net/doc/595333261.html,.AprEndpoint.start(AprEndpoint.java: 717)at org.apache.coyote.http11.Http11AprProtocol.start(Http11AprPro tocol.java:151)at org.apache.catalina.connector.Connector.start(Connector.java:11 32)at org.apache.catalina.core.StandardService.start(StandardService.j ava:531)at org.apache.catalina.core.StandardServer.start(StandardServer.jav a:710)at org.apache.catalina.startup.Catalina.start(Catalina.java:566)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodA

Windows查看已占用端口并且结束

Windows查看已占用端口并且结束 netstat -ano,查看已占用端口,结束已被占用的端口,ntsd,关闭任务管理器杀不了的进程cmd——回车,输入netstat -ano——回车,可以查看已占用的端口,记下端口的PID,然后打开任务管理器,点查看,选择列,勾选PID确定,找到对应的PID,结束进程,如果结束不了或者结束后还不起作用,就用ntsd命令 tomcat端口占用解决办法 如果之前端口没被占用,而后来被占用了,可以去到D:\tomcat-5.5.26\bin下执行shutdown.bat,这样占用的端口就被释放了 如果任务管理器结束不了进程,就用下边这个命令 cmd——回车,输入ntsd -c q -p PID——回车 ntsd -c q -p PID(把最后那个PID,改成你要终止的进程的PID)。在进程列表中你可以查到某个进程的PID。 以上参数-p表示后面跟随的是进程PID,-c q表示执行退出Ntsd的调试命令,从命令行把以上参数传递过去就行了。 Windows系统自带了一个用户态调试工具ntsd,只要你在命令行下使用ntsd调出某进程,然后退出ntsd即可终止该进程,而且使用ntsd会自动获得Debug权限,因此ntsd能杀掉大部分的进程。 ntsd无法杀掉的进程:只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。 另外,tskill 命令杀进程也是一个选择 tasklist能列出所有的进程和相应的信息。 tskill能根据PID(进程ID)进程名等杀死进程。 以下是tskill的详细使用方法 TSKILL processid | processname [/SERVER:servername] [/ID:sessionid | /A] [/V] processid 要结束的进程的Process ID。 processname 要结束的进程名称。 /SERVER:servername 含有processID 的服务器(默认值是当前值)。 使用进程名和/SERVER 时,必须指定/ID 或/A

解决WindowsServer2008System进程占用80端口

解决Windows Server 2008 System进程占用80端口 我这台机子是64位系统 Netsata –ano 80 PID 4 在任管理器中是system NT Kernel&System 我查到有以下几个占用80端口 1.sql2008占用 解决: 如果只是关闭这个服务,用到SQL的时候还会打开可能不是这个问题把端口改成别的就可以了

2. World Wide Web Publishing Service 把这个服务关闭 3.还有可能是你服务器上还运行别的程序占用了,,,,,看看是哪个我的程序不需要IIS所以只可能是有一个用这个端口 把没用的端口关闭 4.windows2008server 这个程序也是占用80端口的如果不需要就把这个关闭吧 5. 80端口被占用,于是win+r 运行cmd 输入netstat -ano 可以看到80端口被PID4占用,于是打开任务管理器-进程-查看,选择列,勾选PID 可以看到pid 4 的被NT kernel & System 占用 该进程是Http.sys。它是http API的驱动组件,Http栈服务器。如果该端口被Http.sys占用,说明一些正在使用http.sys的应用程序在运行。 这就是阻止Apache运行的原因,因为Http.sys占用着80端口。 你可以按照下面步骤禁用http.sys: https://www.360docs.net/doc/595333261.html, stop http(*这个运行,提示无法停止需要你重启一下,,,在 你运行第二次的时候会提示有在停止或无启动*)

这个你可能看到有很多关联服务,先看一下这些你是否需要不要盲 目的下一步 在运行 Sc config http start= disabled 如果不成可能需要你重启一下在运行,,,,我这就重启了 在进行查看应该没有在占用80端口了

ftp 21端口被占用解决办法

ftp 21端口被占用解决办法 (2012-05-16 09:17:12) 最近发现服务器 ftp 21端口被占用,在博客园里找到这个方法不错,来分享下。有时安装程序时,会出现XX端口被占用的情况,可以通过CMD命令查看什么程序占用 1. netstat -ano 查看相应端口对应程序的PID 例如: C:\>netstat -ano Active Connections Proto Local Address Foreign Address State PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1760 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:2967 0.0.0.0:0 LISTENING 660 TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 1712 TCP 0.0.0.0:3934 0.0.0.0:0 LISTENING 728 TCP 0.0.0.0:10700 0.0.0.0:0 LISTENING 4920 TCP 10.186.20.116:21 0.0.0.0:0 LISTENING272 TCP 10.186.20.116:80 0.0.0.0:0 LISTENING 4516 可查看到占用21端口的进程PID为272 2. tasklist查看相应的PID号的程序 tasklist /fi "pid eq PID" 例, C:\tasklist /fi "pid eq 272" 图像名 PID 会话名会话# 内存使用 ========================= ====== ================ ======== ============ ServUDaemon.exe 272 Console 0 3,980 K 3. 如果要释放该端口用tskill PID命令 例,如要释放21端口 tskill 272 --The End--

COM端口被占用

COM端口被占用(在使用中)的问题 1.打开注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter 把ComDB删除后重新尝试即可!(注:这样会重建所有COM口)。如果还不行,重启电脑! 2.另:到注册表下HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM将多余的COM口删除即可 3.另外还可以看看集成的Modem是否占用了你的这个串口。 打开“控件面板”中的“电话/调制解调器选项”,在“调制解调器”选项卡中是否有一个连接占用着这个串口(如COM1) 解决方法: 如果有连接占用这个串口,直接删除这个连接,重新启动电脑,问题解决。 或者看看详细原因: 1、用安全模式启动,用系统自带的通讯中的“超级终端”测试串口(COM1), 这时同样报错,不过错误信息更详细了,如下: ******错误信息******** Windows 汇报了一个TAPI错误(80000048)。 请用“控件面板”中的“电话/调制解调器选项” 图标来确认调制解调器安装得是否正确。 ********************** 2、然后把电脑正常启动了。 打开“控件面板”中的“电话/调制解调器选项”, 发现在“调制解调器”选项卡中有一个连接占用着这个串口(COM1), 于是马上删除这个连接。 再用“超级终端”测试串口(COM1),不报错了, 表示与串口(COM1)通讯正常。 3、把串口设备连接到串口(COM1)上,用相关软件与设备通讯,正常,问题解决。 关于使用蓝牙设备时COM口被占用问题 由於windows莫名其妙的registry原因,很多用户发现,在安装蓝牙管理软件之後,对应的蓝牙虚拟端口居然变成COM9,甚至是COM13或更高,导致与许多应用程序,如手机同步软件,PDA同步软件无法使用,多次重新安装蓝牙管理软件只会让状况更恶化.. 解决方案如下(执行下列步骤之前,请务必卸载蓝牙管理程序,并重新开机) 1.在Windows系统,按开始>执行>输入cmd,按回车 2.出现命令字符视窗之後,输入 set DEVMGR_SHOW_NONPRESENT_DEVICES=1 按回车

如何查看80端口是否被占用_端口被占用解决办法

80端口是否被占用的解决办法 一、问题描述 公司外网发布是必须使用80端口,可是每次tomcat启动时,总时报端口占用,如果将端口改为不用的端口,例如:8090等,就能正常启动使用。 二、问题分析 一般服务器安装MS SQL Server 2008 时,都要求安装IIS 5.0或6.0,此时,肯定时被IIS 占用了,如果你把IIS 端口号修改成其它的,重启IIS 后,80端口仍然被占用呢,那你就需要检测是否还有其它服务占用了。 三、问题检查及处理 先介绍一下我的服务器环境:Windows 2003 Server SP2,MS SQL Server 2008 R2 ,Tomcat 6.0 ,Sun JDK 1.6 和1.7版本。 检查端口占用常用方法有:使用Dos 命令检查或使用专用软件检查。 使用Dos 检查:在Dos 命令行中输入netstat -aon|findstr "80" 即可查看到端口被谁占用,我查时被System 占用,PID为4,使用进程查看器发现是系统自己的进程,所以没办法停用,如果停用,系统无法正常工作,并且重新启动电脑。 使用专用软件检查,例如:Active Ports软件,可以查看到什么端口被什么软件点用,安装位置是什么等,就可以直接定位,但是我的服务器还是显示为PID为4,程序为System 占用,声明:System不带.exe啊(有的进程为:System.exe,我的则不是) 处理方法:经仔细查找,发现是MS SQL Server 2008服务占用了80端口,此时启动SQL Server 配置管理器,进入后,将SQL Server Reporting Services 服务停用后即可,也不影响MS SQL Server 的正常使用。

查看80端口以及端口被占用解决办法

如何查看80端口是否被占用以及端口被占用解决办法 进入CMD(注:win8系统没有开始-->运行,需要使用快捷键:win+R进入运行),输入netstat -ano就可以很清楚的看到本地80口占用程序的PID,然后再去任务管理器里查找到PID所对应的进程(如果任务管理器没有PID,查看-->选择列-->PID(进程标示符)勾上即可) 1、如何查看80端口是否被占用 开始--运行(或者win+R) 输入cmd 命令 进入命令提示符,输入netstat -ano 即可看到所有连接的PID 之后启动任务管理器

找到这个PID所对应的程序 如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列"

勾选pid,确定即可显示

经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用 2、确定谁占用了我们的80端口以及解决办法 1)在windows命令行窗口下执行: C:>netstat -ano|findstr "80" TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448 2)端口被进程号为2448的进程占用,继续执行下面命令: C:>tasklist|findstr"2448" thread.exe 2016 Console 0 16,064 K 3)C:>taskkill /pid 2448 /F 4)如果第二步查不到,那就开任务管理器,看哪个进程是2448或者thread.exe ,

然后杀之即可。 如果需要查看其他端口。把 80 改掉即可 补充:原来出现这个错误原因( 4)httpd.exe: Could not reliably determine the server's fully qualified domain na me, using 192.168.1.111 for ServerName)是因为DNS没配置好. 如果不想配置DNS, 就在httpd.conf , 在最前加入 ServerName localhost:80 即可 另外360安全卫士中的【流量防火墙】,查看网络连接就可以看一些端口的情况。

tomcat启动时出错:严重errorinitializingendpoint

tomcat启动时出错:严重errorinitializingendpoint 严重: Error initializing https://www.360docs.net/doc/595333261.html,.BindException: Address already in use: JVM_Bind:8080 at https://www.360docs.net/doc/595333261.html,.JIoEndpoint.init(JIoEndpoint.java:50 1) at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.jav a:177) at org.apache.catalina.connector.Connector.initialize(Connector.jav a:1059) at org.apache.catalina.core.StandardService.initialize(StandardServ ice.java:677) at org.apache.catalina.core.StandardServer.initialize(StandardServe r.java:792) at org.apache.catalina.startup.Catalina.load(Catalina.java:518) at org.apache.catalina.startup.Catalina.load(Catalina.java:538) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodA ccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Delegating

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

在企业版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窗口的标签 情况如下图:

仔细观察可知,左图其实并没有选中要运行的Servlet窗口的标签,因为标签是白色的,此时点击运行按钮的话相当于再启动一个服务器进程,端口当然是被原来那个已经启动的服务器给占了。而右图中Servlet窗口标签是蓝色的,说明已经被选中了,点击绿色的运行按钮后自然就是将这个Servlet装入已经启动的那个服务器运行,所以不会有像刚才那种端口占用的情况。 情况二:在硬盘的两个地方都有Tomcat 下面说说我碰到过的另一种情况,以前在D盘安装过一个Tomcat,后来因为有段时间不怎么用,就忽略了。再后来又开始做练习的时候,在C盘装了另一个Tomcat,并且在Eclipse中配置的时候也是默认选择了C盘的那个Tomcat。悲剧的是,因为原来在D盘的那个Tomcat我设成了开机启动,所以端口一开始就被它占着。因此,在Eclipse中启动Tomcat(C盘那个)时,就出现了端口占用的错误提示。 后来把D盘的Tomcat删除后,在Eclipse中就能正常运行页面了。 情况三:(8005,8080,8009)三个端口中的至少一个被其他程序占用 这种情况很难一下子看出来,不过反正就是要找出到底是哪个程序占用了这几个端口。可以在控制台里用“netstat -abn”命令查看正在运行的程序所占用的端口以及相关信息:

tomcat假死与异常监控

tomcat假死与异常监控 在开发的tomcat服务应用中,经常会遇到tomcat假死情况,除了每次出现假死时找出原因外,有时候由于业务的重要性,需要及时发现服务异常并及时解决。所以本人就想通过Linux定时任务定时监控的方式来预防这个问题,一旦发现及时通知告警并重启服务,然后才通过日志查明原因从根本上解决。 1)tomcat假死状态 处于假死状态时,后台日志不在生成,服务链接没有响应,但tomcat的进程是存在的,所以若要监控是否处于假死状态可以从日志和服务链接方面入手,但由于检测日志比较麻烦,本人选择的是通过选择某个服务链接获取其访问状态码http_code,若状态码不正常则确认为tomcat服务异常。 例如: url=“http://localhost/….” code=$(curl -o /dev/null --retry 3 -s -w %{http_code} $url) echo “${code}” 上面脚本中url变量为选择的适合的监控链接,code就是该链接正常时应该返回的返回码,正常是为200,有时候由于浏览器缓存可能返回302等也是正常的,所以建议最好选择那种后台的链接能够返回200的,这样检测起来比较方便。 2)tomcat异常监控 在tomcat运行日志中,经常会出现一些异常,对于有些异常我们可以不用管,但例如数据库链接异常、内存溢出异常等,这些异常会直接导致服务不能正常使用,所以需要对这些类型的异常进行监控,同样的本人也是通过Linux脚本实时检查tomcat运行日志的方式来检测服务状态。 脚本如下: errormessage1="https://www.360docs.net/doc/595333261.html,ng.OutOfMemoryError" if cat ${tomcatpath}/logs/catalina.out |grep "$errormessage1">/dev/null then restartFlag="yes" 其实就是通过cat |grep 的方式来查找异常特征字符串是否在运行日志文件中存在,存在则代表出现了该类异常,当然这是需要程序对该类异常做了处理的(捕捉到并输出到控制台)。附带说明:语句 cat …加上了 >/dev/null是为了不输出具体查询的结果的 3)tomcat重启 检查出这些异常时,一般先通过重启服务的方式来优先恢复服务,则对tomcat进行脚本重启。tomcat重启的原理是:先通过命令获取tomcat进程id,然后kill掉该进程id,再重启tomcat命令即可,具体命令如: #tomcat部署路径 tomcatpath="/data/apps/tomcat" #获取tomcat进程id pid=$(ps -ef |grep java| grep ${tomcatpath} |grep -v grep | awk '{print $2}') kill -9 $pid cd ${tomcatpath} ./bin/startup.sh

system进程pid占用端口的解决方案

system进程(pid=)占用端口的解决方案 今天安装php环境的时候老是提示80端口被占用网上找了半天也没有解决方案 cmd下面netstat了一下发现时pid4这个进程 开始以为是iis的服务停掉以后还是不行控制面板里面卸载掉卸载internet信息服务-->万维网服务后还是不行 捣鼓了半天原来是sql08的report服务占用了system的进程不一定就是iis 进行apache启动时。出现这个错误: 通常每个套接字地址(协议/网络地址/端口)只允许使用有一次: make_sock:could not bind to address 0.0.0.0:80 多方实验解决: 1,在运行里输入cmd 进入DOS命令行窗口 2,输入命令netstat -anb 看到80端口被tomcat5在占用,关闭它,apache就正常启动了!如果你的80端口是被其他程序占用,直接关闭程序就可以了! 在CMD下运行: apache -k install apache -k start 这个apache的出错提示! 可能是你还安装了其他的web服务器,比如IIS,它的默认端口也是80,你需要修改它的默认端口或修改apache的。 倘若安装了其他的web服务器,那就在系统的服务里面先停掉然后安装apache。

倘若没有安装其他的服务器,只是apache安装了多次,那么卸载apache的同时,一定要在磁盘中删除apache的所在安装路径下在文件,从新启动电脑,然后从新安装apache,就会ok的。 主要就是web服务器的端口冲突,还有就是多次安装卸载的不干净。 winxp 下apache2 安装问题及解决 安装apache 2 出现的问题: “(OS 10048)通常每个套接字地址(协议/网络地址/端口) 只允许使用一次: make_sock: could not bind to address 0.0.0.0:80...” 一般是IIS或其他程序占用了80端口引起的 分析: netstat -a 查看相应端口,是否有程序占用 netstat -ab 查看具体占用程序 两种解决方法:

大讲台筛选,Hadoop安装端口被占用解决方法

大讲台筛选,Hadoop安装端口被占用解决方法 在测试安装hadoop的时候,通常会遇到大家在同一批机器上安装hadoop的情况,这样的话会有端口已经被占用导致安装不成功的情况出现。 Hadoop日志会提示这种错误: ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because https://www.360docs.net/doc/595333261.html,.BindException: Address already in use 在这种情况下,大讲台专业Hadoop培训。最好的方法就是在配置环境时把所有的端口配置都进行修改。 在hadoop 0.20版本会涉及到3个配置文件: core-site.xml: 1: 2: https://www.360docs.net/doc/595333261.html, 3: hdfs://master:9100 4: 5: 为默认hdfs文件访问URI 6: 7: hdfs-site.xml 1: 2: dfs.datanode.address 3: 0.0.0.0:50011 4: 5: 默认为50010, 是datanode的监听端口 6: 7: 8: 9: dfs.datanode.http.address 10: 0.0.0.0:50076 11: 12: 默认为50075,为datanode的http server端口 13:

14: 15: 16: dfs.datanode.ipc.address 17: 0.0.0.0:50021 18: 19: 默认为50020, 为datanode的ipc server端口 20: 21: mapred-site.xml 1: 2: mapred.job.tracker 3: master:9101 4: 5: job tracker运行的位置和端口 6: 7: 8: 9: 10: mapred.task.tracker.http.address 11: 0.0.0.0:50061 12: 13: 默认为50061, 是task tracker的http server端口 14: 15: 以上端口都配置为和其他人不冲突的端口,然后启动hadoop就可以顺利启动了。 PS: 1:如果遇到这种错误: ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because org.apache.hadoop.ipc.RemoteException: java.io.IOException: Unknown protocol to name node: org.apache.hadoop.mapred.InterTrackerProtoco 说明你在core-site.xml中https://www.360docs.net/doc/595333261.html,的端口和mapred-site.xml中mapred.job.tracker中端口配置为完全相同的了,请修改为不同端口。 2:如果遇到这种:

如何查看端口号被哪个程序使用

如何查看端口号被哪个程序占用了? 一, 1,Cmd输入netstat–ano可以看到 2, 例如我查80端口被什么占用了对应的进程id是 3600 再输入tasklist来查看pid 3600是哪个进程什么程序在跑 3, 可以很快看到是tomcat6在用pid 3600 也即此占用了80端口 此时可以用taskkill /pid 3600 /t /f 快速关闭此进程 或者 二。 开始--运行--cmd进入命令提示符输入netstat -ano即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列" 经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法。假如我们需要确定谁占用了我们的9050端口 1、Windows平台 在windows命令行窗口下执行: C:\>netstat -aon|findstr "9050" TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 2016 看到了吗,端口被进程号为2016的进程占用,继续执行下面命令: C:\>tasklist|findstr "2016" tor.exe 2016 Console 0 16,064 K 很清楚吧,tor占用了你的端口。 taskkill /f /pidXXX linux下:lsof -i :80 三、Linux $netstat -pan|grep 2809 tcp 0 0 0.0.0.0:2809 0.0.0.0:* LISTEN 9493/java https://www.360docs.net/doc/595333261.html, Tags: aix,windows,tips

服务器端口被大量占用解决方法

用NetStat命令查看服务器端口时,发现服务器udp端口开放了好多,最少在1000个以上,,经过仔细仔细检查了一下,网上查阅到如下这个解决办法:先使用netstat -anb命令显示服务器上每个端口所对应的监听程序,因为显示的太多,无法一一看过来,所以只能采用: netstat -anb>C:\1.txt 命令,把输出结果存到C盘根目录下的1.txt文件中,慢慢查看. 查看后,得知所有这些udp端口均为dns.exe程序监听,这台服务器安装了DNS服务,难道中毒了? 在命令提示符下,输入: cd c: 切换C盘根目录,执行: dir dns.exe /s/a 命令进行全盘检索dns.exe程序,经过N久之后,系统检索出5个dns.exe 来,经过检索,这5个dns.exe均属于系统自带的,无任何问题,至此排除中毒的可能。 接着在Google中输入:dns.exe udp端口 得到结果显示为微软的KB951748和 KB951746补丁会导致此问题出现,原文如下: 复制代码代码如下: DNS 服务器安装补丁KB951748 KB951746 后通信的会话数量增大作者:smoile 日期:2008-10-27 12:31:39 在给单位的DNS服务器迁移的时候发现新的DNS服务器上的UDP会话数大得惊人,卸载了重装好是不行,苦闷了两天。今天早上给微软800打电话,可是要我给什么号,想不到技术支持也要验证正版!于是到微软社区发帖,想不到很快就有了回复。按照上面的方法卸载KB951748和 KB951746补丁,果然好了! 以上是网上给的方法,但是我查找了补丁,没发现以上两个补丁,然后,我就去删除了dns.exe这个程序(因为这个程序占用了大量端口),其中有一个不能删除,是进程在占用,查看到PID位1084,于是去关掉进程,删掉了dns.exe,然后再去查看netstat,发现udp占用的大量端口消失了。至此,这个问题应该算是解决了。

关于tomcat启动端口号被占用问题解决

有时候把在myeclpise项目部署到tomcat中的时候会莫名其妙的发现tomcat 启动不了,换成是myeclpise自带的tomcat启动,还是无法成功启动。看看控制台显示的错误信息,有时候会看到https://www.360docs.net/doc/595333261.html,.BindException: Address already in use: JVM_Bind:8080 这样的错误,其实这个错误简单的理解就是tomcat的端口号8080被别的进程给占用了(如果你重新设置了tomcat的端口号,这里可能是其他的数字),看到这情况,相信不少的人就很郁闷了。有人说,这还不简单,我关闭myeclipse 不就可以了吗,当然你这种做法有时候有用,但是如果不是 myeclipse的进程占用了tomcat的端口号呢,你再重新打开myeclipse启动tomcat的时候,错误依旧吧。还有人说,我不管哪个进程占用了tomcat的端口,我直接注销下电脑不就行了,但是有时候你电脑上面打开的程序多了,万一有啥重要的东西忘记保存,你把电脑给注销了,岂不是……。其实还是有办法把那占用tomcat端口的进程给揪出来的,办法如下:点击“运行”输入“cmd”并回车,输入“netstat -ano”并回车,你会看到如下的截图 有人会说,这么多,我怎么找出究竟是哪个程序占用了8080的端口呢,如果你有超人的眼力,一眼就你看出占用8080的进程的地方,不过我很少相信有这样的人,这样的密密麻麻的数字跟字母,估计不少人看了头都大了,还要我去找那个8080,其实很简单鼠标右键在TCP ---------这行上面鼠标右键,就可以看到”查找”的选项,点击后输入8080,点击“查找下一个”,就会看到如上图所示的界面。8080所在的那行的进程就是占用8080端口的,记下该行的PID(PID就是各进程的身份标识),示例中的PID为6072,既然我我们已经找到该进程的PID了,接着就是打开任务管理器了CTRL+ALT+delete。就看到如下的画面:

相关文档
最新文档