启动Glassfish AS会告诉我端口4848被阻塞(或者我configuration的任何端口)。 但是检查端口不被使用。 没有防火墙。
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(它是一个虚拟服务器hough)。
不太清楚如何解决这个问题。
缺lessetc / hosts文件!
java.net.UnknownHostException: ubuntu: ubuntu at java.net.InetAddress.getLocalHost(InetAddress.java:1353) at com.sun.enterprise.util.net.NetUtils.getCanonicalHostName
简单的原因,有时候不应该去寻找复杂的问题!
将127.0.1.1 your-computer-name添加到/ etc / hosts中
然后再试一次!
最好的祝福。
一旦我有类似的例外,我在这里发布解决scheme,以防万一有人需要它: 有一个进程已经使用pipe理端口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“请求”(请求不是expression式,但你明白了)
我有这个问题,罪魁祸首是在/ etc / hosts,有两个条目,“主机名”命令返回到第二个条目的引用。 当第二个条目成为第一个条目,例如127.0.1.1 my.domainname.com(或localhost),那么解决了这个问题。
对我来说问题原来是由于多接口的“主机名”。
运行'hostname' ,然后查看是否可以ping结果
运行java -jar glassfish3/glassfish/modules/glassfish.jar并检查详细日志
通过hostname localhost将主机名设置为“localhost”
底线是你的服务器有麻烦的绑定到主机名(不是像它在错误信息中说的端口)
我刚刚遇到的另一个原因是主机名和IP地址只是不匹配:
hostname XXXXXX hostname -i XXX.XXX.XXX.42
hostname -i返回的IP号码与分配给服务器的IP号码不同。 我的猜测是,这会导致Glassfish尝试绑定由hostname -i返回的旧IP地址上的端口,这显然会失败。
问题是由于安装后机器移动到另一个网段造成的。
正如Insyte所说,确切的错误可能会帮助我们排除故障。
但是在glassfish没有任何帮助的情况下,你可能会考虑strace(1),这样你就可以find失败的系统调用和抛出的错误。 您可能需要使用-f来跟踪分叉的subprocess,具体取决于glassfish的行为。
是否有可能告诉你该端口在防火墙上被阻塞? 如果是这种情况,则必须configuration规则以允许传入连接。