IntelliJ IDEAリモートデバッグ

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 / 2http//192.168.160.130アクセスしてください。:8080 / demo / 3http ://192.168.160.130:8080/demo/4。その結果、ページhttp://192.168.160.130:8080/demo/2のみ更新されますつまり、id == 2のみです。ブレークポイントに入り、他のスレッドのブロックを減らしました。

 

187件の元の記事を公開 146のような 490,000以上にアクセス

おすすめ

転載: blog.csdn.net/qq_37495786/article/details/105024440