1

デプロイの最後に (JBoss 7.1.0 インスタンスで) いくつかの初期化を行う必要があるアプリケーションがあります。これは、必要なすべてのサービスが利用可能になるためです (かなりの数のサービスがあります)。

私たちが試みた 1 つのアプローチは次のとおりです。

@Startup アノテーションと一緒にシングルトン サービスがありますが、これまでのところ、あまり手間をかけずに最後にインスタンスを作成するように JBoss に指示することに成功していません。

使用することもできます@DependsOnが、増え続ける依存関係のリストを維持する必要があるため、最後の手段としてのみ行うことをお勧めします。

昔 (JBoss 4 および 5) では、アプリケーションへの依存関係 ( など@Depends("myapp.ear")) を定義する可能性がありました。

JBoss 7 の時点で変更がありましたが、まだそれを行う方法があると思います。

もう 1 つのアプローチは、他のすべてのサブシステムが開始された後に呼び出される独自の JBoss サブシステムを作成しようとすることでしたが、必要な操作を実行する前に他のサブシステムが終了するのを待つ方法を見つけることができませんでした。

他にどのようなオプションを検討できますか?

4

2 に答える 2

1

You can have a servlet e.g. BootstrapServlet.java, defined with the setting load-on-startup>1 /load-on-startup> in your WEB-INF/web.xml and do the initialization in that servlet.

于 2012-07-08T04:29:16.450 に答える
1

で注釈が付けられたクラスを@Startup別の EAR またはより良い WAR に入れることができます。WAR は - 私が思うに - デフォルトでは、何も設定しなくても EAR の後にデプロイされます。

スタートアップ クラスでは、実際の初期化を呼び出すだけで、アプリケーションの残りの部分と一緒にmyapp.ear. 呼び出しは、EJB ローカルまたはリモート インターフェイスを介して行われます。

于 2012-07-08T06:27:59.357 に答える