WebLogicでCDI その2
その1は現状無いですが。
#wlstudyでお話ししてきた。 の資料が公開されればその1になる予定です。
#wlstudy での発表内容として、現状のWebLogicだとCDIがうまく動いていないというのがありました。
(そのため、発表中ではCDIの@Injectタグをわざわざ@EJBに置き換えた)
その時発表に使用したアプリケーションはWeb-Profileで作成されたアプリケーションでした。
その後、某お方から、WebLogicはJavaEE6のFull-Profileにしか対応していないから動かないのかもしれないというお話を伺ったので、ちょっと実際に作ってみました。
修正内容としては、Web-Profile用、つまりwar一つにEJBやら何やらまで含める簡易包装から、Web-Profile用、つまりearファイルを作成して、warとEJB用のjarを作成するJavaEE5までの形式に変更。*1
とりあえず、GlassFishで動かしてみて、きちんと動くことは確認しました。*2
で、結果:失敗
今回のアプリケーションではScrumManagerの具象クラスは一つしか無いため、@Defaultを付けなくてもインジェクション出来るのが正しいと思うのですが、ScrumManagerImpl_yle32y_Implというのが自動生成されて誤認識されている?何じゃそりゃーという感じです。
JavaEE6ではEJBのインターフェースが省略された場合はインターフェースを自動生成する仕様があった気がしますが、今回はすでにインターフェースが存在するし、そもそもインターフェースは具象クラスじゃない・・・・・・