2017-08-31 10 views
1

私は、Springを使用するオンラインバンキングWebサイトのバックエンドであるプロジェクトをデバッグしています。しばしば、私がバグ報告に縛らなければならないのは、バグを再現するためにどのボタンをクリックするかということです。ブラウザのデベロッパーコンソールでは、リクエストURLとレスポンスが表示されます。私は何とかそのURLにマップされたメソッドを見つけてデバッグを開始しなければなりません。URLでソースにSpring-mappedメソッドを見つける方法は?

Eclipseの検索機能(またはそれを使用する能力)が必要とされることが多いということは私には気にかかります。私は "/ info"や "/ foo"や "foo/info"の文字列検索で少しの結果しか得ることはできません。https://ourcompany.com/ourapp/delegate/rest/account/foo/info のような特定のマッピングを持つメソッドを見つけることができません。すべてのeclipseは、文字列を含む無関係なファイルを見つけて開き、その下にプロジェクトフォルダの束を表示します(折りたたまれています)。

これを行うためのもっと合理的な方法はありますか?私は何か小さくても重要なことを検索から除外しましたか?例のようなURLにマップされたどのメソッドを簡単に見つけることができますか?

+0

アクチュエーターのサポートで 'spring-boot'を使用している場合は、独自の'/mappings'エンドポイントを打つことができます。 –

+0

エンドポイントがどのように設定されているかを理解していないと、実際に暗闇の中でそのような単純なテキスト検索で検索しています。設定されているような深いエンドポイントがあると考えることができる方法が数多くあるため、検索するパスの部分がわからない場合があります。 Eclipseの検索を使用してすべてのコントローラー・クラスを見つけ、それらをブラウズして、探しているエンドポイントを実装するものを見つけます。 –

答えて

1

あなたは、あなたが必要とするクラスを維持ハンドラオブジェクトを持っている方法ここ

@Override 
public final ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) 
     throws Exception { 

    return handleInternal(request, response, (HandlerMethod) handler); 
} 

を参照してください

org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter 

内のブレークポイントを設定しようとすることができます。それが100%のケースで動作するかどうかはわかりません。

0

注釈を使用していると仮定すると、Javaクラスファイルを検索するだけでコントローラを見つけるのは簡単です。私は、アカウントコントローラを検索することから始めます。ここでは、あなたが探しているはずの "{id}/info"にマップされたメソッドが見つかると思います。

あなたが完全な機能セットを探している場合、IntelliJは何かを見ているかもしれません。私はJava、Spring、Struts、およびWebファイルを毎日処理しています。インデックスを作成して結果を簡単に見つけることができます。

関連する問題