如何使用默认设置清除Glassfish 4.0的地址?

时间:2013-06-26 10:25:03

标签: netbeans glassfish port bind

当我尝试使用netbeans IDE 7.3.1中的默认设置启动glassfish服务器时出现以下错误:

java.net.BindException: Address already in use: bind

详细信息: http://ideone.com/wKbat3

我该怎么办?如何清除玻璃鱼的地址?如何设置glassfish使用其他地址?在这种情况下,“地址”意味着什么?

3 个答案:

答案 0 :(得分:11)

主要原因是另一台服务器正在使用端口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进程删除它。

这些步骤对我有用。

答案 1 :(得分:3)

似乎另一台服务器正在使用分配给您的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命令,看看女巫进程使用端口号:

有关如何查找在特定端口上运行的进程的更多信息,另请参阅this guide

答案 2 :(得分:1)

看看/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,一切正常。 否则你应该找到(netstat -a -b,如果你在Windows上)并在启动glassfish之前使用这些端口停止进程。