JBoss にデプロイされた EJB のエントリ ポイントを探しています。
サーブレットには load-on-startup
、その で使用するタグがありますweb.xml
。
init()
EJBの同様の機能を探しています。
JBoss にデプロイされた EJB のエントリ ポイントを探しています。
サーブレットには load-on-startup
、その で使用するタグがありますweb.xml
。
init()
EJBの同様の機能を探しています。
EJB には 3.1 まで存在しませんでした。EJB 3.1 では、シングルトン Bean を使用してそれをシミュレートできます。
@Startup
@Singleton
public class FooBean {
@PostConstruct
void atStartup() { ... }
@PreDestroy
void atShutdown() { ... }
}
それ以外の場合は、古き良きトリックに頼って a を使用する必要がありますServletContextInitializer
。
Glassfish のライフサイクル リスナーなど、アプリケーション固有の拡張機能がいくつかあります。JBossにはそういうものがあるのかもしれません。
しかし、もし私があなただったら、できる限り標準機能に頼ろうとします。非標準の拡張機能の問題は、トランザクションを開始できるかどうかなど、何ができるかどうかが正確にわからないことです。
JBoss AS 5.1をターゲットにしていて、 JBoss EJB 3.0 Extensionsを使用してもかまわない場合は、EJBをブートストラップするサービスBeanを構築できます。サービスがアノテーション付きのインターフェースを実装@Management
し、署名付きのメソッドを宣言する場合public void start() throws Exception
、JBossはサービスの開始時にこのメソッドを呼び出します。次に、初期化するEJBで専用のメソッドを呼び出すことができinit()
ます。
@Service
public class BeanLauncher implements BeanLauncherManagement
{
@EJB private SessionBeanLocal sessionBean;
@Override
public void start() throws Exception
{
sessionBean.init();
}
}
@Management
public interface BeanLauncherManagement
{
public void start() throws Exception;
}
追加のライフサイクルイベントを含む、これに関する詳細は、ここで見つけることができます。
この記事では、サーバーの起動時に機能を呼び出す 7 つの方法について説明します。ただし、すべてが JBoss で動作するわけではありません。
物事を始めるための 7 つの方法。GlassFish および WebLogic での Java EE スタートアップ クラス
起動時に実行するメソッドの先頭に次の行を追加できるはずです。
@Observer("org.jboss.seam.postInitialization")
マネージド Bean は、JBoss の起動時に何らかのプロセスを実行するために使用できます。構成ファイルにそのマネージド Bean のエントリを追加する必要があります。