Java Struts MysqlおよびJboss 4.05バージョンで構築されたアプリケーションを再起動するたびに、アドレスはすでに使用中:JVM_Bind
私が知っている唯一の修正は、マシンを再起動して再試行することです、それは動作します。それ以外の場合は、Ctrl-Alt-Delを実行し、Javaに関連するすべてのプロセスを停止します。これも機能する場合があります。
しかし、正確な理由は何ですか、この問題をどのように防ぐことができますか?
すでに使用されているアドレス:JVM_Bind
は、現在のアプリケーションがバインドしようとしているポートで他のアプリケーションがすでにリッスンしていることを意味します。
あなたがする必要があるのは、現在のアプリケーションのポートを変更するか、それ以上です。すでに実行中のアプリケーションを見つけて、それを強制終了します。
linuxでは、次を使用してアプリケーションpidを見つけることができます。
netstat -tulpn
Windowsでは、クリーンなシャットダウンなしでEclipseがクラッシュすると、このシナリオが発生し、ローカルのJettyまたはTomcatサーバーが稼働し続けます。 Eclipseを再度開いてサーバーを再起動しようとすると、「すでに使用されているアドレス:JVM_Bind」につながります。
これを解決するには、タスクマネージャーを開いてjavaw.exeプロセスを見つけて終了します。
その後、Eclipseでサーバーを再起動できます。
サーバー(私はJBossを使用)が既に使用されているポートで、私は通常これに遭遇します
ユージュアル・サスペクツ
JBoss 4.2.xが自身をバインドするポートを変更するには、次の場所に移動します。
「C:\ jboss4.2.2\server\default\deploy\jboss-web.deployer\server.xml」
ここで、デフォルトはサーバーのインスタンスであり、ここでポートを変更します。
<Connector port = "8080" address = "$ {jboss.bind.address}">
上記の例では、ポートは8080にバインドされています
コマンドラインを開き、netstat -a -o -n
またはtasklist
と入力して、現在実行中のプロセスを確認します。 Javaに関連するポートを見つけて、taskkill /F /PID <your PID number>
と入力します。 Enterをクリックします。
MySqlがJBossと同じポートでリッスンすることは可能ですか?
エラーメッセージで指定されたポート番号はありますかAddress already in use: JVM_Bind:8080
など
JBoss server.xmlのポートを変更して、これをテストできます。
..\Tomcat\conf\server.xmlのポート8080の二重定義が原因である可能性もあります。
<Connector port="8080"
enableLookups="false" redirectPort="8443" debug="0"/>
<Connector port="8080"
enableLookups="false" address="127.0.0.1" maxParameterCount="30000"/>
そのエラーは、別のServerSocket
によって既に使用されているポートに新しいServerSocket
を作成しようとしていることを意味します。そのため、アプリケーションですべてのソケットと接続を閉じ、アプリケーションが完全に終了するようにしてください。また、プログラムで起動した別のプロセスがあるかどうかも確認してください。
それを防ぐ方法に関する簡単な答えは、JBossを再起動する前に停止する必要がある可能性が高いということです。
コンソールビューの[終了]ボタンを呼び出して、サーバーをシャットダウンできるはずです。
jVMバインディング例外の次のオプションを試してください。
Team Serverの資格情報を削除してみてください。ほとんどの場合、サーバーの列にある種のポートが含まれています。 https://wathever.visualstudio.com:44
Windows/Preferencesに移動してTeamを展開し、Team Foundation ServerがCredentialsに移動して、そこにあるものを削除します。
Windowsでも同じでした。私の解決策は、デバッグが接続するポートを取得することでした。 (IntelliJでは、「Tomcatの実行エラー:デバッガーポート(127.0.0.1:XXXXX)を開くことができません::既に使用中です...」という情報を提供する赤い四角形)XXXXXがポート番号であるとします。次に、cmdウィンドウで問題とPIDを検索しました:
netstat -ano | find "CLOSE_WAIT" | find ":XXXXX"
結果行の最後の番号としてPID番号を取得しました。 (YYYYとしましょう)最後に:
TASKKILL /PID YYYY
追加情報:Winscpがログアウトしましたが、おそらくそれが私の問題の原因でした。 :)
私もこの問題を抱えていました。私にとっては、OpenFireを開始/停止できませんでした(停止したと言いましたが、すべてがまだ実行されていました)
Sudo /etc/init.d/openfire stop
Sudo /etc/init.d/openfire start
また、Apacheを再起動しても解決しませんでした
Sudo /etc/init.d/Apache2 restart
エラーは内部にありました:
/opt/openfire/logs/stderror.log
Error creating server listener on port 5269: Address already in use
Error creating server listener on port 5222: Address already in use
これを修正する方法として、ホストの管理領域内でサーバーを実際にオフにする必要がありました。
これは最近、Eclipse内で実行中の2つのTomcatサービスでJMXを有効にしたときに起こりました。誤って各サーバーに同じポートを配置しました。
各jmxリモートに異なるポートを指定するだけです
サーバー1
-Dcom.Sun.management.jmxremote.port=9000
サーバー2
-Dcom.Sun.management.jmxremote.port=9001