Java.net.SocketException: непризнанная ошибка Windows Sockets: 0: JVM_Bind (JBOSS)
Я использую JBoss 4.0.5 GA на Windows 7 с Java версии 1.5 (я должен использовать более старую версию java и JBoss, потому что я работаю с унаследованной системой). И когда я запускаю сервер, я получаю следующую ошибку:
java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
И я считаю, что это вызывает многие другие исключения:
11:09:26,925 WARN [ServiceController] Problem starting servicejboss.cache:service=TomcatClustering Cache
java.lang.NullPointerException
at org.jgroups.protocols.FD_SOCK.down(FD_SOCK.java:235)
at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467)
at org.jgroups.stack.Protocol.passDown(Protocol.java:510)
at org.jgroups.protocols.FD.down(FD.java:278)
at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467)
at org.jgroups.stack.Protocol.passDown(Protocol.java:510)
at org.jgroups.stack.Protocol.down(Protocol.java:540)
at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467)
at org.jgroups.stack.Protocol.passDown(Protocol.java:510)
at org.jgroups.protocols.pbcast.NAKACK.down(NAKACK.java:297)
at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467)
at org.jgroups.stack.Protocol.passDown(Protocol.java:510)
at org.jgroups.protocols.UNICAST.down(UNICAST.java:262)
at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467)
at org.jgroups.stack.Protocol.passDown(Protocol.java:510)
at org.jgroups.protocols.pbcast.STABLE.down(STABLE.java:292)
at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467)
at org.jgroups.stack.Protocol.passDown(Protocol.java:510)
at org.jgroups.protocols.pbcast.GMS.down(GMS.java:605)
at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467)
at org.jgroups.stack.Protocol.passDown(Protocol.java:510)
at org.jgroups.protocols.FC.down(FC.java:122)
at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467)
at org.jgroups.stack.Protocol.passDown(Protocol.java:510)
at org.jgroups.protocols.FRAG2.down(FRAG2.java:146)
at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467)
at org.jgroups.stack.Protocol.passDown(Protocol.java:510)
at org.jgroups.protocols.pbcast.STATE_TRANSFER.down(STATE_TRANSFER.java:217)
at org.jgroups.stack.Protocol.receiveDownEvent(Protocol.java:467)
at org.jgroups.stack.ProtocolStack.down(ProtocolStack.java:331)
at org.jgroups.JChannel.down(JChannel.java:1035)
at org.jgroups.JChannel.connect(JChannel.java:374)
at org.jboss.cache.TreeCache.startService(TreeCache.java:1424)
at org.jboss.cache.aop.PojoCache.startService(PojoCache.java:94)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy4.start(Unknown Source)
at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy8.deploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy4.start(Unknown Source)
at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy5.deploy(Unknown Source)
at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
at org.jboss.Main.boot(Main.java:200)
at org.jboss.Main$1.run(Main.java:490)
at java.lang.Thread.run(Thread.java:619)
Я очень признателен, если кто-нибудь может помочь. По крайней мере, чтобы выяснить, где я должен искать решение (например, это ошибка, связанная с несовместимостью с Windows 7 и JBoss? Это из-за неправильной конфигурации порта? И т.д.)
Спасибо.
Ответы
Ответ 1
Эта проблема возникает в некоторых системах Windows, в которых установлен стек TCP IPv6. Если на компьютере установлены как IPv4, так и IPv6, виртуальная машина Java (JVM) может иметь проблемы с закрытием или открытием сокетов на уровне операционной системы.
Добавьте следующую опцию JVM: -Djava.net.preferIPv4Stack=true
Я видел, как это происходит в системах Windows 7 и Windows 2008, которые по умолчанию установлены как стеки IPv4, так и IPv6.
Ответ 2
У вас очень вероятно, что еще один процесс уже связан с портом, который использует JBoss (8080?), и это не позволяет JBoss правильно начать (см. эту страницу для списка портов, используемых JBoss).
Либо найдите конфликтный процесс и закройте его:
- используйте
netstat -a -o -n
и найдите порты, используемые JBoss (например, 8080) и соответствующие pid
- затем используйте
tasklist /FI "PID eq <pid>"
, чтобы найти процесс
Или измените порты по умолчанию JBoss. Существует несколько способов сделать это, но лучше всего использовать Service Binding Manager (см. Подробные инструкции в Настройка нескольких JBoss Экземпляры на одной машине).
Ответ 3
У меня была аналогичная проблема. Я использовал process-xp и убил javaw.exe
, а затем перезапустил приложение. Это работает для меня.
Ответ 4
Я столкнулся с той же проблемой в Win7, пытаясь реализовать здесь пример:
http://download.oracle.com/javase/tutorial/networking/sockets/clientServer.html
Порт по умолчанию в примере кода - 4444. Используя этот порт, я получил
"Неизвестная ошибка Windows Sockets: 0: JVM_Bind"
Я изменил порт на 44444 и попытался снова. Я получил всплывающее окно из службы брандмауэра Windows, спрашивая, есть ли у этого приложения разрешение на доступ к сети. Выбор OK. Я больше не получаю сообщение об ошибке при запуске моего сервера.
После некоторых экспериментов я обнаружил, что с портом 5000 или менее я получаю ошибку JVM_Bind. Любой порт 5001 или выше будет связываться без проблем.
Ответ 5
Это проблема JAVA 32/64 бит. попробуйте запустить банку с 32-разрядной JVM
Ответ 6
У меня была эта проблема с моим Tomcat, и она превратилась в конфликт портов со Skype. В моем Skype- > Options- > Advanced- > Connection я снял флажок "Использовать порт 80 и 443 в качестве альтернативы входящим соединениям". Это полностью разрешило проблему.
Ответ 7
это решило мою проблему:) Добавьте следующий параметр JVM: -Djava.net.preferIPv4Stack = true
Ответ 8
Я знаю, что это старая проблема, но я недавно выяснил одну причину проблемы, а также решение. Моя программа сокетов сервера работала нормально, пока я не поместил код в цикл, после первой попытки я получил ошибку Unrecognized Windows Sockets error: 0: JVM_Bind
при каждой попытке accept()
. У меня был код вроде этого:
ServerSocket ssock = null;
Socket sock = null;
while (loopCount < loopLimit) {
ssock = new ServerSocket(port);
ssock.setSOLimit(millis);
sock = ssock.accept();
// some code here...
loopCount++;
}
Только после того, как я положил ssock = new ServerSocket(port)
и ssock.setSOLimit(millis);
выше цикла, я удалил ошибку.
Ответ 9
У меня была такая же проблема с Tomcat в Windows 10. Добавили это в файл catalina.bat в верхней части:
SET JAVA_OPTS=-Djava.net.preferIPv4Stack=true
Ответ 10
откройте командную строку как администратор. Затем выполните netsh winsock reset