"java.net.BindException: Cannot assign requested address"竟是瑞星防火墻所為
Posted on 2010-09-03 23:30 石子路口 閱讀(4195) 評論(3) 編輯 收藏 今天要開發個新東西,調試tomcat的時候,從myeclipse中可以正常啟動,但手動啟動竟然怎么也打不開。并報出如下錯誤:

錯誤代碼
1
F:\Tomcat\bin>tomcat6
2
2010-9-3 22:55:35 org.apache.catalina.core.AprLifecycleListener init
3
信息: The APR based Apache Tomcat Native library which allows optimal performanc
4
e in production environments was not found on the java.library.path: F:\Tomcat\b
5
in;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;
6
C:\WINDOWS;C:\WINDOWS\System32\Wbem;F:\Java\jdk1.6.0_16\bin;F:\Java\jdk1.6.0_16\
7
jre\bin;F:\apache-ant-1.7.1\bin;C:\Program Files\Common Files\Thunder Network\Ka
8
nKan\Codecs;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;F:\cvsnt;F:\Tort
9
oiseSVN\bin;C:\Program Files\Microsoft SQL Server\90\Tools\binn\
10
2010-9-3 22:55:35 org.apache.coyote.http11.Http11Protocol init
11
嚴重: Error initializing endpoint
12
java.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
17
8)
18
at org.apache.catalina.core.StandardService.initialize(StandardService.j
19
ava:677)
20
at org.apache.catalina.core.StandardServer.initialize(StandardServer.jav
21
a: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.
26
java:39)
27
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
28
sorImpl.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)
32
2010-9-3 22:55:35 org.apache.catalina.startup.Catalina load
33
嚴重: Catalina.start
34
LifecycleException: Protocol handler initialization failed: java.net.BindExcept
35
ion: Cannot assign requested address: JVM_Bind<null>:8181
36
at org.apache.catalina.connector.Connector.initialize(Connector.java:106
37
0)
38
at org.apache.catalina.core.StandardService.initialize(StandardService.j
39
ava:677)
40
at org.apache.catalina.core.StandardServer.initialize(StandardServer.jav
41
a: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.
46
java:39)
47
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
48
sorImpl.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)
52
2010-9-3 22:55:35 org.apache.catalina.startup.Catalina load
53
信息: Initialization processed in 933 ms
54
2010-9-3 22:55:36 org.apache.catalina.core.StandardService start
55
信息: Starting service Catalina
56
2010-9-3 22:55:36 org.apache.catalina.core.StandardEngine start
57
信息: Starting Servlet Engine: Apache Tomcat/6.0.18
58
2010-9-3 22:55:37 org.apache.coyote.http11.Http11Protocol start
59
嚴重: Error starting endpoint
60
java.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
67
31)
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.
73
java:39)
74
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
75
sorImpl.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)
79
2010-9-3 22:55:37 org.apache.catalina.startup.Catalina start
80
嚴重: Catalina.start:
81
LifecycleException: service.getName(): "Catalina"; Protocol handler start fail
82
ed: 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
86
31)
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.
92
java:39)
93
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
94
sorImpl.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)
98
2010-9-3 22:55:37 org.apache.catalina.startup.Catalina start
99
信息: Server startup in 1405 ms
100
2010-9-3 22:55:37 org.apache.catalina.core.StandardServer await
101
嚴重: StandardServer.await: create[8005]:
102
java.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.
113
java:39)
114
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
115
sorImpl.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)
119
java.util.logging.ErrorManager: 1
120
java.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
131
3)
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
136
a.java:671)
137
2010-9-3 22:55:37 org.apache.coyote.http11.Http11Protocol pause
138
信息: Pausing Coyote HTTP/1.1 on http-8181
139
2010-9-3 22:55:37 org.apache.catalina.connector.Connector pause
140
嚴重: Protocol handler pause failed
141
java.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
146
3)
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
151
a.java:671)
152
2010-9-3 22:55:38 org.apache.catalina.core.StandardService stop
153
信息: Stopping service Catalina
154
2010-9-3 22:55:38 org.apache.catalina.connector.MapperListener destroy
155
警告: Error unregistering MBeanServerDelegate
156
java.lang.NullPointerException
157
at org.apache.catalina.connector.MapperListener.destroy(MapperListener.j
158
ava:165)
159
at org.apache.catalina.connector.Connector.stop(Connector.java:1179)
160
at org.apache.catalina.core.StandardService.stop(StandardService.java:59
161
3)
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
166
a.java:671)
167
2010-9-3 22:55:38 org.apache.coyote.http11.Http11Protocol destroy
168
信息: Stopping Coyote HTTP/1.1 on http-8181
169
2010-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未必就是端口已被用。還是應該注意讀錯誤代碼的。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

從網上得到的方法就是,端口被占用。在命令行中鍵入netstat -nao 找出端口為8181的進程的PID。但這里既然可以在myeclipse中啟動,當然不是端口被占用的原因。那么到底是什么呢?
從錯誤代碼中看到,java虛擬機綁定失敗的地址竟是"<null>",是不是什么設置改變了要連接的地址?偶然在網上看到說瑞星防火墻可能會阻止一些進程。所以就急切的把防火墻停止保護,在命令行中打入"tomcat6",正常啟動。當時真是又喜又恨。其實瑞星防火墻中的訪問控制選項卡中有對所有程序的控制規則,因為設置了自動識別,所以瑞星防火墻自動把tomcat6服務的連接網絡給阻止了。這里你可以把"選項"中的"程序連接網絡被拒絕時提示用戶"就可以進一步驗證。
那么解決的方式就是關掉“瑞星防火墻”或者生氣卸載掉了。當然如果你不想關掉,可能其中有對訪問控制具體的設置我沒有去試驗,大家可以一試。
總而言之,綁定的exception未必就是端口已被用。還是應該注意讀錯誤代碼的。