2

CDIおよびJBoss 7.1.1でJSF 2.1を使用しています

スーパークラス変数にCDIを注入しprincipalて派生クラスにキャストすることは可能ですか? 例MyUserPrincipalでは派生クラスです。私が書く@Inject Principal principalと、デバッグ(およびオーバーロードされたtoString()メソッド)から、MyUserPrincipalプロキシクラスが変数に注入されることがわかりますprincipal。しかし、このインスタンスをインスタンスにキャストできませんでしたMyUserPrincipal

問題を解決するための私の2つの試みの下:

public class MyUserPrincipal implements Principal, Serializible{
   MyUserPrincipal (String name){
   }
   public myMethod() { }
}

//Attempt 1:
public class MyCdiClass2 implements Serializable{
   //MyUserPrincipal proxy instance will be injected. 
   @Inject Principal principal;      

   @PostConstruct init() {
       MyUserPrincipal myPrincipal = (MyUserPrincipal) pincipal;  //<--- Fails to cast! (b)
      myPrincipal.myMethod();
   }
}

//Attempt 2:
public class MyCdiClass1 implements Serializable{
   @Inject MyUserPrincipal myPrincipal; //<---- Fails to inject! (a)

   @PostConstruct init() {
       //do something with myPrincipal

   }
}
4

1 に答える 1