9

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

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

详情请见:http: //ideone.com/wKbat3

我能做些什么?如何清除 glassfish 的地址?如何设置 glassfish 以使用另一个地址?在这种情况下,“地址”是什么意思?

4

3 回答 3

13

主要原因是另一台服务器正在使用端口 8080,这是默认的(如果在命令行中使用这些端口,请在 windows 中检查: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 进程来删除它。

这些步骤对我有用。

于 2014-10-14T09:02:09.547 回答
4

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

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

于 2013-06-26T10:56:51.177 回答
2

看看/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 之前停止使用这些端口的进程。

于 2014-10-09T06:58:55.953 回答