"java.net.BindException: Cannot assign requested address"竟是瑞星防火墙所为

    今天要开发个新东西,调试tomcat的时候,从myeclipse中可以正常启动,但手动启动竟然怎么也打不开。并报出如下错误:
错误代码
  1F:\Tomcat\bin>tomcat6
  22010-9-3 22:55:35 org.apache.catalina.core.AprLifecycleListener init
  3信息: The APR based Apache Tomcat Native library which allows optimal performanc
  4e in production environments was not found on the java.library.path: F:\Tomcat\b
  5in;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;
  6C:\WINDOWS;C:\WINDOWS\System32\Wbem;F:\Java\jdk1.6.0_16\bin;F:\Java\jdk1.6.0_16\
  7jre\bin;F:\apache-ant-1.7.1\bin;C:\Program Files\Common Files\Thunder Network\Ka
  8nKan\Codecs;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;F:\cvsnt;F:\Tort
  9oiseSVN\bin;C:\Program Files\Microsoft SQL Server\90\Tools\binn\
 102010-9-3 22:55:35 org.apache.coyote.http11.Http11Protocol init
 11严重: Error initializing endpoint
 12java.net.BindException: Cannot assign requested address: JVM_Bind<null>:8181
 13        at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:502)
 14        at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176)
 15
 16        at org.apache.catalina.connector.Connector.initialize(Connector.java:105
 178)
 18        at org.apache.catalina.core.StandardService.initialize(StandardService.j
 19ava:677)
 20        at org.apache.catalina.core.StandardServer.initialize(StandardServer.jav
 21a:795)
 22        at org.apache.catalina.startup.Catalina.load(Catalina.java:530)
 23        at org.apache.catalina.startup.Catalina.load(Catalina.java:550)
 24        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 25        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
 26java:39)
 27        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
 28sorImpl.java:25)
 29        at java.lang.reflect.Method.invoke(Method.java:597)
 30        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:260)
 31        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)
 322010-9-3 22:55:35 org.apache.catalina.startup.Catalina load
 33严重: Catalina.start
 34LifecycleException:  Protocol handler initialization failed: java.net.BindExcept
 35ion: Cannot assign requested address: JVM_Bind<null>:8181
 36        at org.apache.catalina.connector.Connector.initialize(Connector.java:106
 370)
 38        at org.apache.catalina.core.StandardService.initialize(StandardService.j
 39ava:677)
 40        at org.apache.catalina.core.StandardServer.initialize(StandardServer.jav
 41a:795)
 42        at org.apache.catalina.startup.Catalina.load(Catalina.java:530)
 43        at org.apache.catalina.startup.Catalina.load(Catalina.java:550)
 44        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 45        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
 46java:39)
 47        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
 48sorImpl.java:25)
 49        at java.lang.reflect.Method.invoke(Method.java:597)
 50        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:260)
 51        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)
 522010-9-3 22:55:35 org.apache.catalina.startup.Catalina load
 53信息: Initialization processed in 933 ms
 542010-9-3 22:55:36 org.apache.catalina.core.StandardService start
 55信息: Starting service Catalina
 562010-9-3 22:55:36 org.apache.catalina.core.StandardEngine start
 57信息: Starting Servlet Engine: Apache Tomcat/6.0.18
 582010-9-3 22:55:37 org.apache.coyote.http11.Http11Protocol start
 59严重: Error starting endpoint
 60java.net.BindException: Cannot assign requested address: JVM_Bind<null>:8181
 61        at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:502)
 62        at org.apache.tomcat.util.net.JIoEndpoint.start(JIoEndpoint.java:519)
 63        at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:203
 64)
 65        at org.apache.catalina.connector.Connector.start(Connector.java:1131)
 66        at org.apache.catalina.core.StandardService.start(StandardService.java:5
 6731)
 68        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710
 69)
 70        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
 71        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 72        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
 73java:39)
 74        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
 75sorImpl.java:25)
 76        at java.lang.reflect.Method.invoke(Method.java:597)
 77        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
 78        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
 792010-9-3 22:55:37 org.apache.catalina.startup.Catalina start
 80严重: Catalina.start:
 81LifecycleException:  service.getName(): "Catalina";  Protocol handler start fail
 82ed: java.net.BindException: Cannot assign requested address: JVM_Bind<null>:8181
 83
 84        at org.apache.catalina.connector.Connector.start(Connector.java:1138)
 85        at org.apache.catalina.core.StandardService.start(StandardService.java:5
 8631)
 87        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710
 88)
 89        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
 90        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 91        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
 92java:39)
 93        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
 94sorImpl.java:25)
 95        at java.lang.reflect.Method.invoke(Method.java:597)
 96        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
 97        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
 982010-9-3 22:55:37 org.apache.catalina.startup.Catalina start
 99信息: Server startup in 1405 ms
1002010-9-3 22:55:37 org.apache.catalina.core.StandardServer await
101严重: StandardServer.await: create[8005]:
102java.net.BindException: Cannot assign requested address: JVM_Bind
103        at java.net.PlainSocketImpl.socketBind(Native Method)
104        at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365)
105        at java.net.ServerSocket.bind(ServerSocket.java:319)
106        at java.net.ServerSocket.<init>(ServerSocket.java:185)
107        at org.apache.catalina.core.StandardServer.await(StandardServer.java:373
108)
109        at org.apache.catalina.startup.Catalina.await(Catalina.java:642)
110        at org.apache.catalina.startup.Catalina.start(Catalina.java:602)
111        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
112        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
113java:39)
114        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
115sorImpl.java:25)
116        at java.lang.reflect.Method.invoke(Method.java:597)
117        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
118        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
119java.util.logging.ErrorManager: 1
120java.lang.NullPointerException
121        at org.apache.juli.FileHandler.publish(FileHandler.java:137)
122        at java.util.logging.Logger.log(Logger.java:458)
123        at java.util.logging.Logger.doLog(Logger.java:480)
124        at java.util.logging.Logger.logp(Logger.java:596)
125        at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:165)
126        at org.apache.juli.logging.DirectJDKLog.info(DirectJDKLog.java:115)
127        at org.apache.coyote.http11.Http11Protocol.pause(Http11Protocol.java:220
128)
129        at org.apache.catalina.connector.Connector.pause(Connector.java:1073)
130        at org.apache.catalina.core.StandardService.stop(StandardService.java:56
1313)
132        at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744)
133
134        at org.apache.catalina.startup.Catalina.stop(Catalina.java:628)
135        at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalin
136a.java:671)
1372010-9-3 22:55:37 org.apache.coyote.http11.Http11Protocol pause
138信息: Pausing Coyote HTTP/1.1 on http-8181
1392010-9-3 22:55:37 org.apache.catalina.connector.Connector pause
140严重: Protocol handler pause failed
141java.lang.NullPointerException
142        at org.apache.jk.server.JkMain.pause(JkMain.java:679)
143        at org.apache.jk.server.JkCoyoteHandler.pause(JkCoyoteHandler.java:153)
144        at org.apache.catalina.connector.Connector.pause(Connector.java:1073)
145        at org.apache.catalina.core.StandardService.stop(StandardService.java:56
1463)
147        at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744)
148
149        at org.apache.catalina.startup.Catalina.stop(Catalina.java:628)
150        at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalin
151a.java:671)
1522010-9-3 22:55:38 org.apache.catalina.core.StandardService stop
153信息: Stopping service Catalina
1542010-9-3 22:55:38 org.apache.catalina.connector.MapperListener destroy
155警告: Error unregistering MBeanServerDelegate
156java.lang.NullPointerException
157        at org.apache.catalina.connector.MapperListener.destroy(MapperListener.j
158ava:165)
159        at org.apache.catalina.connector.Connector.stop(Connector.java:1179)
160        at org.apache.catalina.core.StandardService.stop(StandardService.java:59
1613)
162        at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744)
163
164        at org.apache.catalina.startup.Catalina.stop(Catalina.java:628)
165        at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalin
166a.java:671)
1672010-9-3 22:55:38 org.apache.coyote.http11.Http11Protocol destroy
168信息: Stopping Coyote HTTP/1.1 on http-8181
1692010-9-3 22:55:38 org.apache.catalina.connector.Connector stop
170严重: Coyote connector has not been started
171

从网上得到的方法就是,端口被占用。在命令行中键入netstat -nao 找出端口为8181的进程的PID。但这里既然可以在myeclipse中启动,当然不是端口被占用的原因。那么到底是什么呢?
    从错误代码中看到,java虚拟机绑定失败的地址竟是"<null>",是不是什么设置改变了要连接的地址?偶然在网上看到说瑞星防火墙可能会阻止一些进程。所以就急切的把防火墙停止保护,在命令行中打入"tomcat6",正常启动。当时真是又喜又恨。其实瑞星防火墙中的访问控制选项卡中有对所有程序的控制规则,因为设置了自动识别,所以瑞星防火墙自动把tomcat6服务的连接网络给阻止了。这里你可以把"选项"中的"程序连接网络被拒绝时提示用户"就可以进一步验证。
    那么解决的方式就是关掉“瑞星防火墙”或者生气卸载掉了。当然如果你不想关掉,可能其中有对访问控制具体的设置我没有去试验,大家可以一试。
    总而言之,绑定的exception未必就是端口已被用。还是应该注意读错误代码的。

你可能感兴趣的:("java.net.BindException: Cannot assign requested address"竟是瑞星防火墙所为)