関西WildFly 8(旧JBoss AS)勉強会 - connpass やるので、ちょこちょこネタ出し。
タイトルの通りなんですが、GlassFish4.0 では上手く動いて WildFly8.0.0 - 8.1.0 では上手く動きませんでした。
そんな困らなかったので詳しく追っかけてないですが、なんでなんでしょうねー?
2014/08/26 追記:WildFly のバグとして登録されました。
WildFly で StereoType に CDI Scope を指定しても上手く認識してくれない件を調べる - nekop's blog
[WFLY-3774] CDI bean with StereoType is not injectable in implicit bean archive - JBoss Issue Tracker
以下サンプルコード
Model.java
package hoge; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import javax.enterprise.context.RequestScoped; import javax.enterprise.inject.Stereotype; import javax.inject.Named; @Stereotype @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Named @RequestScoped // これが効かない! public @interface Model { }
BackingBean.java
package hoge; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; @Model // ここの RequestScoped が効いてくれない! // これ外すと javax.el.PropertyNotFoundException だったり、 // BackingBean を他で Inject してたら CDI のデプロイエラー @RequestScoped public class BackingBean { private static final long serialVersionUID = 1L; private String test; public String getTest() { return test; } public void setTest(String value) { test = value; } public void output() { System.out.println(test); } }