IDEA リモート デバッグ サーバー Java アプリケーション

ローカルで使用されるコードが war/jar パッケージとわずかに異なることを確認してください。そうしないと、ブレークポイントに入ることができません。

IDEA配置

ここに画像の説明を挿入
ホストアドレスとデバッグポートを設定する

jar パッケージの起動設定 (ポートの一貫性を確保するため)

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8089 デモ.jar

war パッケージは Tomcat を使用します

Windowsの場合は、tomcatのbinディレクトリにcatalina.batを設定します。

rem Configure JAVA 9 specific start-up parameters
set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.lang=ALL-UNNAMED"
set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.io=ALL-UNNAMED"
set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"
rem 添加
set CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8089" 

Linux の場合は、tomcat の bin ディレクトリに catalina.sh を設定します。設定は次のようになります。

# Add the JAVA 9 specific start-up parameters required by Tomcat
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.lang=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.io=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"
CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8089" #添加
export JDK_JAVA_OPTIONS
export CATALINA_PID=/www/server/tomcatHSOA/apache-tomcat-9.0.21/logss/tomcat.pid #添加

CATALINA_PID を追加する必要があることに注意してください。追加しないと、プロジェクトを閉じるときに開いているソケット ポートが正常に閉じられず、tomcat.pid にアクセス許可を設定する必要があります。そうしないと、自動的に閉じられません。窓も似たようなもんだ

説明する

これらのパラメータは、リモート デバッグをサポートするように Java 仮想マシン (JVM) を構成するために使用されます。以下に各パラメータの説明を示します。

-agentlib:jdwp: これは、Java デバッグ エージェント ライブラリを有効にするオプションです。jdwp は Java Debug Wire Protocol の略で、Java デバッガとアプリケーション間の通信用のプロトコルです。
Transport=dt_socket: デバッガとデバッグ対象のアプリケーション間のソケットを使用した通信のトランスポート方法を指定します。dt_socket は送信にソケットを使用することを意味します。
server=y: デバッグサーバーとして実行する JVM を指定します。これは、JVM がデバッガーの接続要求を待機することを意味します。
suspend=n: JVM の起動時にデバッガの接続要求を一時停止して待機するかどうかを指定します。n は一時停止がないことを意味し、JVM は通常どおり実行を続けます。
address=8089: デバッガーが接続するアドレスとポートを指定します。この例では、デバッガーはローカル ポート 8089 に接続します。

これらのパラメーターを使用すると、JVM でリモート デバッグを有効にし、デバッガーが接続する方法とポートを構成できます。このようにして、IntelliJ IDEA またはリモート デバッグをサポートするその他のツールを使用して JVM に接続し、リモート デバッグ操作を実行できます。

予防

運用環境では使用しないでください。デバッグ後は、安全ではないため、追加された構成を忘れずにオフにするか、ユーザー名とパスワードを次のように構成してください。ただし、テストはしていません。

要设置远程调试的用户名和密码,您可以使用Java的JPDA_ADDRESS环境变量来实现。请按照以下步骤进行操作:

打开Tomcat的启动脚本文件(通常是catalina.sh或catalina.bat)。

在文件的顶部,找到设置Java选项的地方。

在设置Java选项的地方,添加以下行:

export JPDA_ADDRESS=8089
export JPDA_TRANSPORT=dt_socket
export JPDA_SUSPEND=n
export JPDA_OPTS="-Djava.security.debug=all -Djava.security.auth.login.config=$CATALINA_HOME/conf/jaas.config"
创建一个名为jaas.config的文件,并将以下内容添加到文件中:

tomcat {
    
    
    org.apache.catalina.realm.JAASMemoryLoginModule required
    debug=true
    user=test
    password=test;
};
将user和password的值设置为您希望使用的实际用户名和密码。

保存文件并重新启动Tomcat。

现在,您可以使用IntelliJ IDEA或其他调试工具连接到Tomcat的8089端口,并提供正确的用户名和密码进行身份验证。

おすすめ

転載: blog.csdn.net/weixin_43051544/article/details/131749562