当我试图用netbeans IDE 7.3.1的默认设置启动我的glassfish服务器时,我得到了以下错误:
java.net.BindException: Address already in use: bind
详细信息:http://ideone.com/wKbat3
我能做什么?如何清除玻璃鱼的地址?如何将glassfish设置为使用其他地址?在这种情况下,"地址"是什么意思?
主要原因是另一台服务器正在使用端口8080,也就是默认的端口(在命令行netstat-a-o中检查窗口中是否使用了这些端口)
您需要将其更改为:
/glassfish/domains/domain1/config/domain.xml
更改:name="http-listener-1" **port="8080"**
name="http-listener-2" **port="8181"**
收件人:name="http-listener-1" **port="9090"**
name="http-listener-2" **port="9191"**
然后,从您的框架(例如Eclipse)中删除服务器,关闭它,启动它,然后再次添加Glashfish。
在启动框架之前,请确保没有这样的文件:/glassfish/domains/domain1/osgi-cache/felix/*.lock
如果它存在,删除它,你可以停止任何Java进程来删除它
这些步骤对我很有效。
似乎另一台服务器正在使用分配给您的glassfish服务器的一个端口。
在我的情况下,我得到了异常SEVERE: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8009"] java.net.BindException: Address already in use: JVM_Bind <null>:8009
它原来是一个被遗忘的Tomcat实例,已经在我的电脑上运行了。当我禁用被遗忘的实例时,异常消失了。
因此,在您的情况下,其他服务器正在占用您的glassfish服务器使用的端口。找到它是哪台服务器并停止它,或者为你的glassfish服务器分配一个不同的端口。
如果您在windows上,您可以使用netstat -a -o
命令,并查看进程是否使用端口号:
有关如何查找在特定端口上运行的进程的更多信息,请参阅本指南
看看/glassfish/domains/domain1/config/domain.xml,你会发现一个类似的部分
<network-listeners>
<network-listener name="http-listener-1" port="8080" protocol="http-listener-1" thread-pool="http-thread-pool" transport="tcp"/>
<network-listener name="http-listener-2" port="8181" protocol="http-listener-2" thread-pool="http-thread-pool" transport="tcp"/>
<network-listener name="admin-listener" port="4848" protocol="admin-listener" thread-pool="admin-thread-pool" transport="tcp"/>
</network-listeners>
这些应该是glassfish需要打开的端口。在我的情况下,由于端口8181已经被另一个进程使用,我遇到了同样的错误。我把端口改为8187,一切都很好。否则,您应该在启动glassfish之前找到(如果您在windows上,则为netstat-a-b)并停止使用这些端口的进程。