润乾报表无法识别的端口号
今天遇到一个这样的问题,客户安装好我们的设计器后使用IE发布的时候出现下面的错误:
java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
但是我们一般遇到的端口的错误是
Java.net.BindException: Address already in use: JVM_Bind:8081
at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:264)
at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:137)
at org.apache.coyote.tomcat5.CoyoteConnector.initialize(CoyoteConnector.java:1447)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:610)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:2384)
at org.apache.catalina.startup.Catalina.load(Catalina.java:508)
at org.apache.catalina.startup.Catalina.start(Catalina.java:549)
at com.runqian.starter.EmbededTomcatProcessor.startCatalina(EmbededTomcatProcessor.java:189)
at com.runqian.starter.EmbededTomcatProcessor.main(EmbededTomcatProcessor.java:235)
也就是端口占用的错误,推荐客户改了几个端口号都没能解决问题
不知道怎么回事,应该是端口的问题,肯定是端口被占用了。但是为什么这个异常是不稳定的呢?为什么有时候出来,有时候不出来呢?于是google了一下,windows下怎么查看端口端口占用的情况:在命令行中输入:netstat -aon|findstr “5678″(这边的5678是我程序需要开启的端口),果然,端口还真的被占用了:
原来是3064号进程在监听我的这个端口。奇怪了,这是什么程序在搞怪呢?
于是有输入了:tasklist|fidstr “3064″,来找到是什么应用在监听这个端口。我顿时目瞪口呆了:
然后使用进程管理器关闭掉这个进程就Ok了
总结:以后如果出现这样类似的问题可以通过这样的命令行调试并关闭相应的进程来解决这个问题了