Teeda上で自前アノテーションが取れない(かも知れない)
仕事、だいぶん基本的な所は出来てきたので足回りにとりかかる。認証チェックとかそういうの。
簡単な認証インターセプタを何時もどおりに作ってみた。今回は認証不要の画面(ログインとか)をアノテーションで指定して、アノテーションがあったら認証をスキップするようにした。
最初、ElementTypeをMETHODにしてやったら上手くいった。
で、メソッドにアノテーション書くと、例えばログインだったら、initializeだprerenderだdoLoginだ面倒なので、ElementTypeはTYPEにした。
そしたら急にアノテーションが取れない。
Class#getAnnotation(Class)の結果がnullになっちゃって、ログイン画面の表示で無限地獄(この場合、無限はわざと字を違えてありますので4649)。
テストケースから実行すると上手くいくのです。サーバ上でTeedaで実行するとだめ。
で、Class#getAnnotations()だとちゃんととって来てくれるので
Annotation[] annotations = clazz.getAnnotations(); for(Annotation ant : annotations){ if(ant instanceof HogeAnnotation){ //まあいろいろと。 } }
てな感じで逃げた。
Seasar2.4.13、Teeda1.0.7で御座居ます。
もしかして、ここらへんがTeeda + S2Maiでコケてる原因かも知れません。ああ仕事、佳境なのに思いついてしまった。むずむず。しばしお待ちを。