私はIntelliJのを使用してリモートデバッグしたいオラクルのJava 1.8.0を使用してのUbuntu 14.x上で実行されている春ブーツのJavaアプリを持っています。私はそれをデバッグの目的のためにポートで待ち受けようとしましたが、成功しませんでした。私が試したポートは、許可の問題ではないことを確認するために、すべてポートの上にある1024です。私はrootではないが、私はボックスへのsudoのアクセスを持っている。リモートデバッグの目的でJavaアプリケーションがポートでリッスンすることができませんか?
私は、javaコマンドラインにこれを追加してみました:
-agentlib:jdwp=transport=dt_socket,address=localhost:9009,server=y,suspend=y
私は、この文書から得た技術:私は、このコマンドを実行したときしかし、
http://javahowto.blogspot.com/2010/09/java-agentlibjdwp-for-attaching.html
:
sudo netstat -an | grep LISTEN
ポート9009は表示されません。また、「suspend = y」パラメータで示されているように、アプリケーションはデバッガの添付を待たずに、なぜなら私は、アプリケーションの初期化メッセージが、アプリケーションが起動するのと同じようにストリームを見るからです。なぜこれは機能しないのですか?
ここに、アプリケーションを起動するシェルスクリプトがあります。このシェルスクリプトは、スーパーバイザによって起動されます。私はトラブルを引き起こしている可能性があります場合には、この点を指摘:
# !/bin/bash
# Shell script to launch Spring Boot app
# Kill subprocess when parent bash process is terminated by supervisor or when CTRL+C is received
trap 'kill -TERM $PID' TERM INT
java \
-Dnetworkaddress.cache.ttl=5 \
-Dnetworkaddress.cache.negative.ttl=5 \
\
-jar spbootapp.jar \
-agentlib:jdwp=transport=dt_socket,address=localhost:9009,server=y,suspend=y
--spring.application.name=spbootapp-awsdev \
--spring.profiles.active=cluster \
--spring.cloud.config.enabled=false \
--endpoints.configprops.enabled=false \
--endpoints.health.sensitive=false \
&
現在のデバッグパラメータの代わりに、 '-Xdebug -Xrunjdwp:transport = dt_socket、server = y、suspend = y、address = 9009'を試してみてください。編集:また、パラメータはあなたの問題である可能性が最も高い '-jar'の前に行く必要があります。 – Kon
@kon古いスタイルのコマンドラインを試す必要はありません。あなたはそれを解決するパラメータの再配置についての提案です。私はそれを受け入れることができるようにあなたのコメントを答えに変えてください。ありがとう! –
完了、以前のスタイルであることに気付かなかった – Kon