3

ドメイン コントローラー、1 つのホスト コントローラー、および 1 つのサーバーが同じマシンで実行されています。

デバッグのためにIDEAを使用してリモートサーバーに接続していますが、コードを実行していてもブレークポイントで停止しません(システムアウトで確認しました)。

$JBOSS_HOME/bin/domain.conf でリモート デバッグを有効にHOST_CONTROLLER_JAVA_OPTSしました。PROCESS_CONTROLLER_JAVA_OPTS

# Sample JPDA settings for remote socket debuging.
PROCESS_CONTROLLER_JAVA_OPTS="$PROCESS_CONTROLLER_JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8788,server=y,suspend=n"
HOST_CONTROLLER_JAVA_OPTS="$HOST_CONTROLLER_JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"

JBoss サーバーを起動すると、ポート 8787 および 8788 を適切にリッスンしていることを netstat から確認できます。システムで実行されているプロセスを一覧表示すると、ドメイン コントローラー用、ホスト コントローラー用、およびサーバー (server1) 用に 1 つずつ表示されます。ドメイン コントローラーとホスト コントローラーには、起動プロパティで指定されたデバッグ オプションがありますが、server1 にはありません。

しばらくの間、さまざまな XML、.conf、および .sh ファイルを調べてきましたが、server1 を指定してリモート デバッグ オプションを使用する方法がわかりません。ドメイン モードで単一サーバーをリモートでデバッグする方法はありますか?

4

3 に答える 3

2

JHollanti は、リモート デバッグを許可するためのコンパイラ フラグ ("lines,vars,source" など) が不足している可能性があります。

たとえば、Ant を使用している場合は、次の行を javac に追加する必要があります。

<!-- Javac lines, vars, source compiler flags -->
<javac srcdir="..." destdir="..." classpathref="..." debug="true" debuglevel="lines,vars,source" />

次に、実行スクリプトに java を追加して以下を追加します。

<!-- debug configurations: modify the port you want-->
<jvmarg value="-Xdebug"/>
<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4060"/>

一方、Maven を使用している場合は、次のように同じフラグを に追加できます。

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>2.0.2</version>
      <configuration>
        <!-- Necessary in order for the debug levels to be considered-->
        <debug>true</debug>
        <debugLevel>lines,vars,source</debugLevel>
      </configuration>
    </plugin>
  </plugins>
</build>

前と同じように Jetty を使用する場合は、次の変数が必要です。

export MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n"

一方、確認できるのは、中断フラグをyesに設定していることです。それは"suspend=y"です。デバッガーを接続しない限り、アプリは起動しません。

ここで、jboss に関する特定の情報を確認できます。

http://webdev.apl.jhu.edu/~jcs/ejava-javaee/coursedocs/605-784-site/docs/content/html/devenv-jboss-setup.html#enable-jboss-debug

お役に立てれば幸いです

于 2013-11-20T15:17:02.427 に答える
0

jvm-options追加することでリモートデバッグを有効にすることができます$JBOSS_HOME$\domain\configuration\hosts.xml

の下に次の構成を追加します。<servers> -> <server> -> <jvm>

<jvm-options>
   <option value="-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"/>
</jvm-options>

サーバー構成は次のhosts.xmlようになります

<servers>
    <server name="Server1" group="Group1" auto-start="true">
        <jvm name="Server1_JVM" debug-enabled="false">
            <heap size="2048m" max-size="4096m"/>
            <jvm-options>
                <option value="-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"/>
            </jvm-options>
        </jvm>
        <socket-bindings socket-binding-group="full-ha-sockets" port-offset="100"/>
    </server>
</servers>

お役に立てれば!

于 2016-10-28T21:40:44.130 に答える