1.リモートを追加します。
2.サーバー実行プロジェクト
2.1 jarパッケージjava -jar start
PS:
サーバーはアドレス5005でトランスポートdt_socketをリッスンしているように見えます。
ローカルデバッグがプロジェクトを開始し、コンソールがターゲットVMに接続されたように表示されます。アドレス: '192.168.160.130:5005'、トランスポート: 'socket';これは、リモートでダビングできることを意味します。
ブラウザでhttp://192.168.160.130:8080/demo/にアクセスします
ローカルコードがブレークポイントに入ります。
2.2 warパッケージTomcatが起動します
vim catalina.shコマンドを使用して、catalina.shを編集します。
PS:
デフォルトでは、Tomcatはローカルデバッグのみを許可します。デフォルトのlocalhost:8000を0.0.0.0:5005に変更すると、任意のIPをリモートでデバッグできます。
[root@localhost bin]# vim catalina.sh
[root@localhost bin]# ./catalina.sh jpda start
Using CATALINA_BASE: /usr/local/apache-tomcat-8.5.53
Using CATALINA_HOME: /usr/local/apache-tomcat-8.5.53
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.53/temp
Using JRE_HOME: /usr/local/jdk1.8.0_11
Using CLASSPATH: /usr/local/apache-tomcat-8.5.53/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.53/bin/tomcat-juli.jar
Tomcat started.
[root@localhost bin]#
Tomcatログファイルcatalina.outを表示します。
21-Mar-2020 20:39:11.467 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
21-Mar-2020 20:39:11.484 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 6862 ms
2020-03-21 20:39:20.214 INFO 70337 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2020-03-21 20:39:20.219 INFO 70337 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 4 ms
Listening for transport dt_socket at address: 5005
アドレス5005でトランスポートdt_socketをリスニングしていることがわかります。
3. リモートデバッグ、乱用しないでください
開発者はローカルデバッグ機能をよく使用します。日常の環境のマシンをリモートでデバッグする必要があるシナリオがある場合があります。この場合、同時に複数の人がマシンを使用している可能性があります。この現象は、人がリモートでデバッグするときによく発生します。この機械は他の人を待たせました。他の人もこのマシンに何が起こったのか分からず、困惑しています...
図に示すように、4つのタブはすべてhttp://192.168.160.130:8080/demo/にアクセスします。4ページはめくり、待ち続けます。。。
リモートデバッグによる他への影響を最小限に抑える方法。これには、デバッグ演算子に関するいくつかの要件があります。
コードが次の場合:
@GetMapping(value = "/{id}")
public String test1(@PathVariable Integer id) {
return "hello world======>"+id;
}
設定は次のとおりです。
もう一度ブラウザーにアクセスして、今度は4つのページを開きます。それぞれhttp://192.168.160.130:8080/demo/1、http://192.168.160.130:8080 / demo / 2、http://192.168.160.130にアクセスしてください。:8080 / demo / 3、http ://192.168.160.130:8080/demo/4。その結果、ページhttp://192.168.160.130:8080/demo/2のみが更新されます。つまり、id == 2のみです。ブレークポイントに入り、他のスレッドのブロックを減らしました。