2010-12-08 14 views
2

私は非常に大きなjava/servlets/webプロジェクトで作業しています。どのクラスとメソッドが呼び出されているのか探しにくいです。正しいクラスを見つけるのに数時間かかることがあります。アプリケーションやプラグイン、テクニックがあれば少し助けてくれますか?私は日食を使用しています。呼び出すクラス/メソッドを教えてくれるプログラムはありますか?

編集:私はオープン呼び出し階層(ときメソッド宣言には)ように自分の発信者と、あなたのすべての呼び出し元を与える、となります> ApacheとTomcatの

+0

実行時または開発時に私をしますか? –

+0

@Preet at developement – code511788465541441

答えて

1
  • CTRL + ALT + H、または右クリックを使用しています。また、階層を逆にすることもできます。

  • 右クリック>参照>プロジェクトでは、指定されたクラスが使用される場所が表示されます。

+0

あなたの答えはBozhoですが、それは私が求めていることではありません。どのメソッドをクリックしてコール階層を表示するか分かっていたら、私はすでに探しているものを見つけました。アプリケーションのリンク(Webブラウザ上) – code511788465541441

+1

@ user521180をクリックすると、どのメソッドが呼び出されているか知る必要があります。そのためには、フレームワークとEclipseの簡単な検索機能が必要です。 – Bozho

2

Bozhosへのあなたのコメントについては、あなたのサーバーインスタンスでプロファイラを使用してください。クライアントアプリケーションのリンク(「ブラウザ」)をクリックする前にプロファイリングを開始し、正しい応答があった直後にプロファイリングを開始します。次に、プロファイラのログ/ビューを調べて、実際にサーバ上で何が起きているか調べます。

Eclipse Test & Performance Tools Platform Projectは試用する価値があります。

0

AOPを使用して、コードの特定の部分にトレース/ロギングの側面を追加することを検討することをお勧めします。この方法では、コードを更新する必要はなく、メソッド名、クラス、およびパラメータの例で呼び出されるすべてのメソッドの行を記録するアスペクトを書くことができます。このアスペクトは、本番環境でのトレースのロギングを防ぐために、プロダクションバージョンをビルドする際には、もちろんオフにすることができます。あなたがAOPに精通しているならば、アスペクトやポイントカットを簡単に微調整することができます。たとえば、コントローラクラス内の特定のメソッドまたはそのようなものへの呼び出しを記録するだけです。

このソリューションの詳細が必要な場合は、より具体的な情報を要求するこの回答にコメントしてください。

1

Bhozoの答えに対するあなたのコメントから、私はあなたが開発時ではなく、実行時に意味すると結論づけました。

デバッガをアプリケーションに接続して一時停止することをお勧めします。その時、コールスタックを調べることができます。これは通常、どこを見るかを示します。

-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n 

次に日食では、ポート8787に「リモート」のデバッグ設定を追加し、それを実行します、次の設定を使用してJavaアプリケーションを実行することを行うには

。デバッガがアプリケーションにリンクされました。 eclipseをデバッグの視点に置きます。

アプリケーションのリンクをクリックし、すぐにデバッガの一時停止ボタンをクリックします。コールスタックが表示されるようになりました。通常、ヒントがあると、すぐにブレークポイントを入れるための良い点を見つけることができます。しかし、このテクニックは手がかりを得るのに役立ちます:)

関連する問題