启动 Glassfish AS 会告诉我端口 4848 被阻止(或我配置的任何端口)。但检查端口未被使用。没有防火墙。
root@ubuntu:~/glassfishv3/glassfish/bin# netstat -tlunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2149/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2441/cupsd
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 2075/postgres
tcp6 0 0 :::22 :::* LISTEN 2149/sshd
tcp6 0 0 :::5432 :::* LISTEN 2075/postgres
udp 0 0 0.0.0.0:68 0.0.0.0:* 2082/dhclient3
udp 0 0 0.0.0.0:39256 0.0.0.0:* 2413/avahi-daemon:
udp 0 0 0.0.0.0:5353 0.0.0.0:* 2413/avahi-daemon:
Ubuntu 9.04 Linux ubuntu 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:58:03 UTC 2009 x86_64 GNU/Linux(它是一个虚拟服务器)。
不太确定如何解决这个问题。
答案1
缺少 etc/hosts 文件!
java.net.UnknownHostException: ubuntu: ubuntu
at java.net.InetAddress.getLocalHost(InetAddress.java:1353)
at com.sun.enterprise.util.net.NetUtils.getCanonicalHostName
简单的道理,有时候不应该去寻找复杂的问题!
答案2
将 127.0.1.1 你的计算机名称添加到你的 /etc/hosts
然后再试一次!
此致。
答案3
一旦我遇到类似的异常,我就会在这里发布解决方案,以防有人需要它: 已经有一个进程正在使用管理端口 4848 - 它可能是 GlassFish 服务器的另一个实例。
java.net.BindException:无效参数:bind:7676=com.sun.enterprise.v3.services.impl.ServiceInitializerHandler
然后,您必须将“/etc/sysctl.d/bindv6only.conf”中的键“net.ipv6.bindv6only”从“1”更改为“0”,这是一个内核参数,启用后 IPV6 应用程序可以仅监听 IPV6“请求”(请求不是表达式,但您明白了)
答案4
对我来说,问题是由于多个接口而导致的“主机名”。
运行'hostname'
然后看看是否可以 ping 结果
运行java -jar glassfish3/glassfish/modules/glassfish.jar
并检查详细日志
通过以下方式将主机名设置为“localhost”hostname localhost
最主要的是您的服务器无法绑定到主机名(而不是错误消息中所说的端口)