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(仮想サーバーハフ)。
この問題にどのように取り組むかはよくわかりません。
etc/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.1your-computer-nameを/ etc/hostsに追加します
そしてさらに試みる!
宜しくお願いします。
この問題が発生し、原因は/ etc/hostsにあり、2つのエントリがあり、「hostname」コマンドが2番目のエントリへの参照を返しました。 2番目のエントリが最初のエントリになったとき。 127.0.1.1 my.domainname.com(またはlocalhost)を実行すると、問題が修正されました。
私がちょうど遭遇したもう一つの理由は、ホスト名とIPアドレスがちょうど一致しなかったということでした:
hostname
XXXXXX
hostname -i
XXX.XXX.XXX.42
hostname -i
によって返されるIP番号は、サーバーに割り当てられているものとは異なります。私の推測では、これによりGlassfishはhostname -i
によって返された古いIPアドレスのポートをバインドしようとしますが、これは明らかに失敗します。
この問題は、インストール後にマシンが別のネットワークセグメントに移動されたことが原因で発生しました。
同様の例外が発生したら、誰かがそれを必要とする場合に備えて、ここに解決策を投稿します:管理ポート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の「要求」のみをリッスンします(要求は式ではありませんが、要点はわかります)
私にとって、問題は複数のインターフェースによる「ホスト名」であることが判明しました。
'hostname'
を実行して、結果にpingを実行できるかどうかを確認します
Java -jar glassfish3/glassfish/modules/glassfish.jar
を実行し、詳細ログを確認します
hostname localhost
でホスト名を「localhost」に設定します
肝心なのは、サーバーがホスト名にバインドするのに問題があるということです(エラーメッセージに表示されているようなポートではありません)
ポートがファイアウォールでブロックされていることを示している可能性はありますか?その場合は、着信接続を許可するルールを構成する必要があります。
Insyteが示唆しているように、正確なエラーはトラブルシューティングに役立つ可能性があります。
しかし、glassfishで何も役に立たない場合は、strace(1)を検討して、失敗したシステムコールとそれがスローするエラーを見つけることができます。 Glassfishの動作によっては、分岐した子プロセスを追跡するために-fが必要になる場合があります。