4

Sling バンドルとしてビルドされるアプリケーションのデバッグに苦労しています。アプリケーションはほぼ完全に Groovy コード (私は Groovy Eclipse プラグインを持っています) であり、Eclipse (Maven を使用) は問題なく .jar をビルドして Sling にインストールしています。

ただし、デバッグはできません。リモート デバッグをセットアップするための指示に従いました。これは、Sling アプリのデバッグに必要であると収集しました。具体的には、次のコマンドで Sling を起動します。

java -Xdebug -Xnoagent -Djava.io.tmpdir=/c/Users/nickgolding1/temp -Xmx1024m -Xrunjdwp:transport=dt_socket,address=30303,server=y,suspend=n -jar org.apache.sling.launchpad-6-SNAPSHOT-standalone.jar -p 8080

...そして、私のプロジェクト、接続タイプ「標準(ソケットアタッチ)」、ホストlocalhost、ポート30303を指す、「リモートJavaアプリケーション」タイプのEclipseでデバッグ構成をセットアップします。この構成は、問題なく開始されるようです-少なくとも、そうではないことを示唆するフィードバックは得られませんが、Groovy コードに設定したブレークポイントは、実際には Sling アプリへのリクエストの実行を中断しません。

さまざまなフォーラムで、リモート Java アプリ構成を介した Groovy コードのデバッグに問題を抱えている人々を示す投稿をいくつか見ましたが、Java コードには問題はありません。残念ながら、私のアプリはすべて Groovy であり、Java ではないため、ここでこれが当てはまるかどうかを確認できません。

どんな考えでも大歓迎です!

4

1 に答える 1

4

まず、提案。suspend=yXrunjdwp:transport オプションで設定します。これはメインでサスペンドし、問題がデバッグ オプションにあるのか、それとも Groovy コードにあるのかについて、より良いアイデアを提供します。

さて、もっと複雑なことに移りましょう。はい。リモート Groovy コードのデバッグに関していくつかの問題があります。この問題は通常、Groovy コードが動的にロードされるときに発生します。この場合、デバッグ名がソース名と一致しないことが多く、デバッガーは動的にロードされたクラス ファイルを元のソース コードと一致させる方法を知りません。

そのような問題の 1 つがここで説明されています (同様のことが他にも発生していることは間違いありません): https://jira.springsource.org/browse/SPR-7113

したがって、可能であれば、Groovy コードがサーバーに送信される前にプリコンパイルされていることを確認することをお勧めします。(そして も設定しsuspend=yます。)

于 2012-03-05T16:23:09.817 に答える