10
アプリケーションのロード時に、管理対象BeanをJSF Webアプリケーションの起動時に内部的に実行する必要があります。このクラスを作成してGlassfishで設定するにはどうすればよいですか?スタートアップマネージドBeanの設定方法は?
アプリケーションのロード時に、管理対象BeanをJSF Webアプリケーションの起動時に内部的に実行する必要があります。このクラスを作成してGlassfishで設定するにはどうすればよいですか?スタートアップマネージドBeanの設定方法は?
CDFのJSFでは、observe のapplication scopeです。
@Named
@ApplicationScoped
public class App {
public void startup(@Observes @Initialized(ApplicationScoped.class) Object context) {
// ...
}
public void shutdown(@Observes @Destroyed(ApplicationScoped.class) Object context) {
// ...
}
}
手でOmniFacesを有し、これは@Eager
と簡略化することができます。 JSF 2.2-で
@Named
@Eager
@ApplicationScoped
public class App {
@PostConstruct
public void startup() {
// ...
}
@PreDestroy
public void shutdown() {
// ...
}
}
now deprecated
javax.faces.bean
注釈と、eagerlyが初期化されるapplication scopedmanaged beanを使用します。
@ManagedBean(eager=true)
@ApplicationScoped
public class App {
@PostConstruct
public void startup() {
// ...
}
@PreDestroy
public void shutdown() {
// ...
}
}
'@ManagedBean(eager = true)'を試したことがありますか? CDI(@ManagedBeanの代わりに@Named)を使用している場合、アプリの初期化を監視する必要があります。 'public void init(@Observes @Initialized WebApplication webApplication){//do Something} ' (実際に私はglassfishでこれを試していません、jBoss AS 7で使用しました。他のサーバーでいくつかの設定が必要な場合があります... [こちらをチェック] http://stackoverflow.com/質問/ 7347516 /スタートアップ - pojo-on-a-weld-seam3-application)out ... – FMQ