Bean から BeanArrayList<String>
にあるにアクセスしようとしています。デプロイ時に AS Bean を初期化する必要があるため、Bean を使用して AS Bean を初期化しています。配列が作成されているのがわかりますが、RS Bean からアクセスしようとすると null になります。私は、配列の内容を出力する AS Bean を持っています。@PreDestroy が呼び出されると、配列は null になります。変数は AS Bean に保持されますか?javax.enterprise.context.ApplicationScope
javax.enterprise.context.RequestScoped
@javax.ejb.Singleton @javax.ejb.Startup
@PreDestroy
@Named("simpleTest")
@ApplicationScoped
public class SimpleTest implements Serializable{
private static final long serialVersionUID = -9213673463118041881L;
private ArrayList<String> apps;
public void simpleTest() {
createApps();
debugApps();
}
public void createApps() {
apps = new ArrayList<String>();
apps.add("This is string 1");
apps.add("This is string 2");
}
public void debugApps() {
System.out.println("Beginning debug...");
for (String a : apps){
System.out.println(a);
}
}
@PreDestroy
public void ending() {
System.out.println("Hey there, I'm about to destroy the SimpleTest Bean...");
debugApps();
}
/* Getters and setters */
...
RSビーン:
@Named("aBean")
@RequestScoped
public class ABean implements Serializable{
private static final long serialVersionUID = -7213673465118041882L;
private ArrayList<String> myApps;
private String str;
@Inject
private SimpleTest st;
public void initStr(){
if (myApps != null){
for (String s : myApps){
setStr(s);
}
}
}
@PostConstruct
public void init(){
setMyApps(st.getApps());
initStr();
}
public String getErrs(){
String errs = "I couldn't find the apps";
if (myApps != null){
errs = "I found the apps!";
}
if (str != null){
errs = str;
}
return errs;
}
/* Getters and setters */