2

私は「ハウツー」フェーズにApache CXFあり、サーバーの起動時にメソッドを呼び出す方法があるかどうかを知りたいです。

JSFこれはWebアプリケーションに似ています。@ApplicationScopedマネージドBeanを使用するeager=true場合:コンテナーが開始されると、注釈付きクラスがインスタンス化され、コンストラクターから必要なものを呼び出すことができます。

何か助けはありますか?

4

1 に答える 1

4

したがって、リクエストの処理に使用CXF Servletしている場合は、作成でき、アプリケーションが既にデプロイされている場合は、デプロイ時またはサーバーの起動時にメソッドが呼び出されます。Web ServiceServletContextListenercontextInitialized

これを行うには、以下を実装するクラスを作成しますServletContextListener

public class YourContextListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {      
        //This method is called by the container on start up
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {        
    }   

}

次に、そのリスナーをweb.xml:で定義します。

<listener>
    <listener-class>your.package.YourContextListener</listener-class>
</listener>

このcontextInitializedメソッドでは、次を使用してサーブレットコンテキストを取得できます。

ServletContext context = sce.getServletContext();

また、アプリケーションスコープ全体で使用できるようにする属性をいくつでも設定できます。

于 2012-08-24T12:30:46.537 に答える