私はしばらくの間ハッキングとグーグルをしてきましたが、さまざまなアプリケーションサーバーを備えた古いバージョンのintellij用に作成されたように見えるいくつかのstatckオーバーフロースレッドを見つけました。通常、彼らはあなたに入るように言います
java -Xdebug -Xrunjdwp:transport=dt_socket,address=51887,suspend=n,server=y
1つの答えは次のようなものを使用することを提案します
-agentlib:jdwp:transport=dt_socket,address=51887,suspend=n,server=y
しかし、私はこれを取得します:
Error occurred during initialization of VM
Could not find agent library: libjdwp:transport.jnilib (searched /Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Libraries:/System/Library/Java/Extensions:/Library/Java/Extensions:.)
次に、上記のいずれかの後に、「構成の編集> jetty> remote and enter localhost、51887」のように表示されます(ポート番号は異なります)
ただし、12では、リモートを選択した後に表示されるページには多数のオプションがあり、別のタブのjdwpポートではなく、JNDIポートを要求しているため、実際には上記のjdwpパラメーターが提案されます。
JNDIポートビットを調べると、通常、このような引数をコマンドラインに追加するための命令が生成されます...
-Dcom.sun.management.jmxremote= \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false\
私もそれを実行し、Javaが保持しているポート1099(lsofを使用)を確認でき、1099にtelnetできるので、JVMがリッスンしていることがわかります。(つまり、パスワードなしでネットワーク経由で任意のJavaコードをコンピューターにインストールするためのポートを開くという事実を心配しないようにします)
ただし、Intellijでは、デプロイしてデバッグしようとすると、次のメッセージが表示されます。
Wiresharkでポート1099をスヌープすると、1099を介したJava RMI通信を確認できます(ただし、判読できません)。明らかに、Intellijにとって通信は満足のいくものではないので、Jettyをうまく機能させるために何かする必要があるのではないかと思います。Jettyのバージョンを変更することは現在のところオプションではないので、そこには行かないことに注意してください:)。
また、アーティファクトを削除し、makeを無効にして、デバッガーを接続しようとしましたが、それでも同じ赤いバルーンとエラーメッセージが表示されるため、明らかにJNDI(ポート1099)の部分が必要です。
誰かが私が間違っていることを見たり、これを機能させるために私がしなければならないことを知っていますか?
(これに似たものかどうか疑問に思います:http://youtrack.jetbrains.com/issue/IDEA-65746 jboss issue)
編集:このGoogleグループの投稿のおかげで、[構成の編集]> +> [jetty]> [リモート]を指定せずに、[構成の編集]> +> [リモート]を選択し、デバッグとデプロイを行うと、デバッガーを接続できることがわかりました。それが私が求めているものなので、それは半分の解決策にすぎません。