web-dev-qa-db-ja.com

IntelliJでデバッガーポートを開けませんIDEA

IntellJ IDEでアプリケーションをデバッグモードで設定できないという問題がありますが、実行モードは問題ありません。

私のOSはWindows 7、IDEはIntellJ IDEA、WebコンテナはTomcat 6です。長い間試しましたが、HTTPポートとJMXポートを変更しましたが、機能しませんでした。

IntellJでデバッグモードでアプリをセットアップすると、失敗し、イベントログは次のようになります。

16:05:35 Tomcatの実行中にエラーが発生しました:デバッガーポートを開けません:Java.net.BindException "アドレスは既に使用中:JVM_Bind"。

任意の助けをいただければ幸いです。

60
feng smith

問題の鍵はdebugger portにあります。私は同じ問題を抱えていました。ポート8081(httpポート)、1099(JMXポート)、Tomcatシャットダウンポート、すべてのJava.exeをリッスンしているすべてのプロセスを強制終了しましたが、それでも何もしませんでした。

事はこれですdebugger portは異なります。アプリケーションを実行すると、Tomcatが設定されているポート、8080、8081などを通過します。ただし、デバッグモードで実行すると、別のポートを経由します。

IntelliJからTomcat構成を編集する場合、最後のタブはStartup/Connectionです。 Debugモードの設定を確認すると、ポートが表示されます。私は50473でした。私はそれを50472に変更し、すべてが再び動き始めました。

111
T.M.

私にとって、IntelliJ Event Log(右下隅)には以下のログがありました:

Error running EntitmentTooling-Debug: Cannot run program "/path-to/Apache-Tomcat-8.5.15/bin/catalina.sh" (in directory "path-to/Apache-Tomcat-8.5.15/bin"): error=13, Permission denied

Error running EntitmentTooling-Debug: Unable to open debugger port (127.0.0.1:58804): Java.net.SocketException "Socket closed"

コマンド

$ chmod a+x /path-to/Apache-Tomcat-8.5.15/bin/catalina.sh

特権を十分に変更するために私のために働いた。

35
Chandan

Windowsを使用している場合は、共有メモリデバッグに切り替えることにより、ソケットの問題を完全に回避できます。

enter image description here

13
Avner

これは一貫して機能します(たとえば、統合テストを実行しているときにTomcatを再起動するなどのことを行うと、時々起こります)

1)ポート1099が開いているプロセスを見つける

Sudo netstat -anp | grep tcp | grep 1099
cp6       0      0 :::1099                 :::*                    LISTEN      9857/Java

2)殺す

kill 9857

3)Tomcatを起動します。

9
Tk421

Windows 7とIntellijIdea 14でも同じ問題が発生しました。CTRL+ ALT + EScを実行してJavaプロセスを強制終了し、Javaを見つけて強制終了しました。ここで再実行します。アプリケーションは再び問題ないはずです。コマンドラインまたはShell(linux)を使用して実行することもできますが、これは自分にとっては簡単なことです。

8
Manam

この方法で問題を解決しました。

  1. すべてのJava.exeプロセスを強制終了しようとしましたが、役に立ちませんでした。
  2. 次に、Tomcatサーバーを削除してみました
  3. プロジェクトを再デプロイし、プロジェクトを再起動しましたが、動作しました。

詳細については、次のリンクを参照してください。

Tomcatを削除 Delete Tomcat

新しいTomcatを追加する Add a new Tomcat

4
Abbot

この正確なメッセージがありました。

その理由は、いくつかのIDE(私はEclipseとIntellijを使用しています)がTomcatサーバーのシャットダウンに失敗したためです。または、クラッシュする前にクラッシュした可能性があります。

解決策は、C:\...\Apache-Tomcat-xxx\binに移動してshutdownを実行することでした。

3
Florian F

私のために働いた唯一のことは、Windowsのタスクマネージャに移動し、右クリック->タスクの終了で実行されているすべてのJavaプロセスを終了することです。

2
truthseeker

コンピューターのDNSミスが127.0.0.1 localhostであるため、同じ問題があります。 127.0.0.1 localhostをホストファイルに追加すると、OKになります。

1
vince

コンピューターを再起動したときに、すべてが正常であることが時々起こります。おそらくポートの競合があります。

再起動中にJavaまたはTomcatのインスタンスが強制終了されるため、コンピューターが再起動します。タスクマネージャーから特定のプロセスを強制終了することも検討できます。

これは、context.xmlファイルに問題がある場合にも発生します。私の場合、誤ってコンテキスト値を変更していました。

1
feng smith

私の場合、上記の方法はいずれも機能しませんでした。つまり、実行構成でのポート番号の変更、マシンの再起動、IntelliJでのキャッシュの無効化、netstatに表示されるプロセスの強制終了(nestat -anob | findstr <port-number>、次にtskill <pid>)です。最終的に助けたのは、startup.batおよびshutdown.batを介してTomcatを手動で起動およびシャットダウンすることだけでした(LinuxおよびmacOSでは、対応する.shファイルを使用する必要があります)。

1
k13i

これにはさまざまな理由があります。
-デバッガーのポートに問題がある可能性があります---解決するように変更してください(回答者: T.M
-intellijキャッシュに問題がある可能性があります-キャッシュを無効にして再起動すると解決します( feng smith による回答)
-JMX、AJPなどの他のポートに問題がある可能性があります---これらのポート番号も変更してください。
これをコメントとして追加したかったが、十分な担当者がいなかった

1
RAHUL ROY

IntelliJのTomcat構成のサーバータブで、JMXポートを別の番号に変更します。

1
Majid

デバッグ中にこの問題が発生しました:

  1. tomcat HTTPポート8082を8083に変更してみました(IntelliJのデバッグ構成およびTomcat-> conf-> server.xmlでも)
  2. jMXポートを1099から1009に変更してみました。
  3. デバッグ構成のスタートアップ/接続でデバッグポートを変更しようとしました
  4. taskManager-> ProcessesのすべてのJavaプロセスを強制終了しました。
1

残念ながら、他のすべてのソリューションは機能しませんでした。これは私のために働いたものです。デバッガのポートを他のポート番号に変更しただけです。

Intelij->プリファレンス->ビルド、実行、展開->デバッガー->ビルトインサーバー->ポート(値の変更)

enter image description here

0
Rachita Nanda

私の場合、Tomcat/confフォルダーのserver.xmlに問題があり、別のコメントタグの下に追加のコメントタグがありました。したがって、server.xmlに問題があったため、Tomcatを起動できなかったと思います。さらに、TomcatフォルダーをインストールディレクトリからC:\ Users\username.IntelliJIdea2017.2\system\Tomcat\Tomcat_serviceにコピーします

0
Arun

Intelli Jで構成されたサーバーのデバッグポートを変更します。

修正されます。 enter image description here

これは、同じポート番号で実行されているアプリケーションがある場合に発生します。プロセスを強制的に強制終了することでこれを行う1つの方法。管理者としてコマンドプロンプトを開きます。コマンド「taskkill/IM "Java.exe"/F」を実行します。これはWindowsでうまくいきました。これが機能するかどうかを教えてください。

0
Umesh_Shah
  1. 「実行」構成をチェックして、使用しているポートを確認します(8081)。
  2. そのポートを使用する他のすべてのプロセスを見つけるlsof -t -i :8081
  3. そのポートのプロセスを強制終了します。 kill PROCESS_ID
  4. Tomcatをデバッグモードで実行します。

私の場合、debugger portの変更に多くの時間を浪費しましたが、問題はなかったです。 TomcatはRun構成で選択したポートで実行できなかったため、サービスをデバッグできませんでした。

0
recepinanc