Netty+Tomcat热部署端口占用解决办法(转)

在eclipse使用maven deploy (tomcat:deploy) 热部署netty项目 ,项目启动的时候会报错端口被占用。 

Java代码 

 

  1. java.net.BindException: Address already in use  
  2.     at sun.nio.ch.Net.bind0(Native Method)  
  3.     at sun.nio.ch.Net.bind(Net.java:444)  
  4.     at sun.nio.ch.Net.bind(Net.java:436)  
  5.     at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)  
  6.     at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)  

原因是热部署时候,tomcat关闭时候端口未被释放 
如何释放端口呢? 

先查看端口被谁在占用,执行命令  ,比如我的netty监听端口为14141 

Java代码 

 

  1. netstat -tunlp|grep 14141  

查到结果 

Java代码 

 

  1. tcp        0      0 0.0.0.0:14141           0.0.0.0:*               LISTEN      3529/java  

可以看到端口正在被3529的进程占用 

调用tomcat的shutdown.sh根本不能释放端口 
继续输入命令干掉进程 

Java代码 

 

  1. kill -9 3529  

结束掉进程之后  去tomcat/webapps目录下面  把要热部署的项目全部删掉(如有需要请备份) 

启动tomcat 执行startup.sh   因为项目被删了  再执行netstat -tunlp|grep 14141时候可以看到端口已被释放 

回到eclipse 执行 

Java代码 

 

  1. tomcat:deploy  

记住是deploy不是redeploy 因为服务器的项目已经被干掉了 所以要用deploy 
执行成功后 发布成功 netty监听端口完美解决

http://quinnhe.iteye.com/blog/2219462

 

时间: 2025-01-31 07:23:18

Netty+Tomcat热部署端口占用解决办法(转)的相关文章

linux打开80端口及80端口占用解决办法

linux打开80端口 天客户那边有台服务器同一个局域网中都无法访问,排除lamp环境问题,发现时服务器中的防火墙没有开启80端口.于是去网上搜索了一下,在脚本之家看到一种添加代码的方法  代码如下 复制代码 vi /etc/sysconfig/iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允许80端口通过防火墙) -A INPUT -m state –state NEW -m tcp -p tcp

server-eclipse在tomcat上部署的项目没有办法更新

问题描述 eclipse在tomcat上部署的项目没有办法更新 在tomcat上webapps里删除此项目然后重新部署,发现服务器上始终都是最开始的那个项目 ,项目上右键debug as---debug on servier总会提示XXX is required and cannot be removed on server,求助 - -! 解决方案 http://www.cnblogs.com/ywl925/p/3815173.html 解决方案二: 现在eclipse中remove,,不就行

tomcat 热部署热加载

不重启Tomcat有两种方式:热部署.热加载     1.热部署:容器状况在运行时重新部署整个项目.这类环境下一般整个内存会清空,重新加载,这类方式  有可能会造成sessin丢失等环境.tomcat 6确实可以热部署了,而且对话也没丢.  2.热加载:最好是在调试过程中使用,免患上整个项目加载,Debug标准样式支持热加载.容器状况在运行时重 新加载转变编译后的类.在这类环境下内存不会清空,sessin不会丢失,但容易造成内存溢出,或者找不到方法.一般转变类的布局和模型就会有异常,在已经有的变

Tomcat热部署和虚拟目录配置

1.Tomcat如何配置热部署 默认就是  1 <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> 如果要实现IDE修改代码的自动部署,可以使用第三方工具 http://www.zeroturnaround.com/jrebel/ 1.解压缩包 2.执行java -jar jrebel-setup.jar 3.会

80端口被占用怎么办?80端口被占用解决办法

如何知道80端口是被谁占用的呢?   首先,我们按键盘上的Win + R快捷键打开"运行"对话框:   输入"cmd",进入DOS命令窗口:   在DOS命令窗口中输入"netstat -ano"就可以看到所有的在使用中的端口及对应的进程PID:   在显示结果中找到占用80端口的进程:     OK,下面我们就到进程管理中,将它相关进程或服务关闭即可:

win8解压版Tomcat startup.bat一闪而过的解决办法

环境变量没有设置正确,这里直接修改此bat文件,不用再去我的电脑右键属性设置了,非常方便.. 1.winxp 或者 win7同学 tomcat\bin\startup.bat 文件中加上如下代码即可,其中后面的jdk和jre路径是你本机的路径,别都按照我的写... 1

apache 和iis共用80端口多种解决办法

方法一: IIS5,多IP下共存,IIS为192.168.0.1,apache为192.168.0.2 原文地址 c:InetpubAdminscripts cscript adsutil.vbs set w3svc/disablesocketpooling true 该命令反馈如下disablesocketpooling : (BOOLEAN) True 重启IIS InetpubAdminScripts>cscript adsutil.vbs set w3svc/disablesocketp

迅雷下载提示 “下载失败,文件被其他程序占用”解决办法

[方法1] 如果是windows 7 系统可以是权限问题,我们选择退出迅雷,然后再找迅雷快捷方式,右击它在弹出菜单点击"以管理员身份运行迅雷再下载"试一一可以解决不.     [方法2] 有可能是杀毒给占了,我们退了杀毒软件试一下.   [方法3] 也可能是资源自身的问题,请任意下载一个安装包测试看下是否正常,如果下载这里的资源正常,那这个就是您当前下载的资源问题了.   [方法4] 如果你下载所有软件都是提示 下载失败,文件被其他程序占用 那有可能是迅雷问题我们退出重启电脑试一下.

apache 80 端口被占用无法重启解决办法

linux系统中apache 80端口被占用解决办法 apache重启的时候可能会出现以下错误: httpd:(98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down