netbeans IDE 7.3.1 からデフォルト設定で Glassfish サーバーを起動しようとすると、次のエラーが発生します。
java.net.BindException: Address already in use: bind
私に何ができる?glassfish のアドレスをクリアするにはどうすればよいですか? 別のアドレスを使用するようにglassfishを設定するにはどうすればよいですか? この文脈で「住所」とはどういう意味ですか?
netbeans IDE 7.3.1 からデフォルト設定で Glassfish サーバーを起動しようとすると、次のエラーが発生します。
java.net.BindException: Address already in use: bind
私に何ができる?glassfish のアドレスをクリアするにはどうすればよいですか? 別のアドレスを使用するようにglassfishを設定するにはどうすればよいですか? この文脈で「住所」とはどういう意味ですか?
主な理由は、別のサーバーがポート 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 プロセスを停止することができます。
これらの手順はうまくいきました。
Glassfish サーバーに割り当てられたポートの 1 つを別のサーバーが使用しているようです。
私の場合、例外が発生しましたSEVERE: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8009"] java.net.BindException: Address already in use: JVM_Bind <null>:8009
私のPCですでに実行されている、忘れられたTomcatインスタンスであることが判明しました。忘れたものを無効にすると、例外はなくなりました。
したがって、あなたの場合、グラスフィッシュサーバーが使用するポートを他のサーバーが占有しています。それがどのサーバーであるかを見つけて停止するか、別のポートを Glassfish サーバーに割り当てます。
Windows を使用している場合は、次のnetstat -a -o
コマンドを使用して、魔女プロセスがポート番号を使用することを確認できます。
特定のポートで実行されているプロセスを見つける方法の詳細については、このガイドも参照してください
/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 に変更したところ、すべて正常に機能しました。それ以外の場合は、(Windows の場合は netstat -a -b) を見つけて、glassfish を開始する前にこれらのポートを使用しているプロセスを停止する必要があります。