2017-08-25 5 views
1

私は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 \ 
    & 
+2

現在のデバッグパラメータの代わりに、 '-Xdebug -Xrunjdwp:transport = dt_socket、server = y、suspend = y、address = 9009'を試してみてください。編集:また、パラメータはあなたの問題である可能性が最も高い '-jar'の前に行く必要があります。 – Kon

+0

@kon古いスタイルのコマンドラインを試す必要はありません。あなたはそれを解決するパラメータの再配置についての提案です。私はそれを受け入れることができるようにあなたのコメントを答えに変えてください。ありがとう! –

+0

完了、以前のスタイルであることに気付かなかった – Kon

答えて

2

デバッグパラメータ-agentlib:jdwp=transport=dt_socket,address=localhost:9009,server=y,suspend=y、コマンドで-jar前に行く必要があります。

関連する問題