Hi all,
I'm new to Seam and I'm starting in understanding how bijection works.
Current scenario is:
a jsf button is linked to a start() method on a session bean stateless where
there is declared:
@Out
PojoA pojoA = new PojoA("frank pojo a");
public String start() {
PojoB b = new PojoB();
b.doB();
return "nothing by now";
}
PojoA is:
@Name("pojoA")
public class PojoA {
public PojoA() {
this.a="empty a";
}
private String a;
public PojoA(String a) {
this.a=a;
}
public void doA(String withWho){
System.out.println("AAAA --> pojoa doing a with value: "+a+" from: "+withWho);
}
}
and PojoB is:
@Name("pojoB")
public class PojoB {
@In(create=true)
PojoA pojoA;
public PojoA getPojoA() {
return pojoA;
}
public void setPojoA(PojoA pojoA) {
this.pojoA = pojoA;
}
public void doB(){
System.out.println("b doing b");
this.getPojoA().doA("b");
}
}
Everytime start() is called and pojoB is called, pojoA is not injected
and the create=true annotation value is not considered throwing a NullPointerExcetpion (pojoA is null).
I think I'm missing something.
What am I missing?
Thanks to all
Frank
You need to let Seam instantiate the component, you can't do this:
PojoB b = new PojoB();