2

Weld/Seam3 アプリケーション内で起動時に POJO を開始しようとしていますが、うまくいきません。私は次のことを試しましたが、どれもうまくいきませんでした:

@Singleton
public class StartupJobs {
    @Inject
    private Logger log;

    public void onStartup(@Observes @Initialized ServletContextEvent event) {
        log.info("Starting startup jobs");
    }

    public void onStartupTwo(@Observes @Initialized WebApplication webApplication) {
        log.info("Starting startup jobs");
    }
}

-

// Guessing this way is no good as I can't use the javax.ejb.Startup annotation here
@ApplicationScoped
public class StartupJobs {
    @Inject
    private Logger log;

    @PostConstruct
    public void onStartup() {
        log.info("Starting startup jobs");
    }
}

しかし、それらの方法はどちらも機能しませんでした。私のログメッセージは決して発生しませんでした。このアプリケーションは Tomcat6 で実行されており、「org.jboss.weld.environment.servlet.Listener」リスナーを web.xml に追加する必要があったため、クラスが発生させて観察できるものがあるかどうか疑問に思っています。とはいえ、特に気にしたことはありません。

他に何を試すことができるか手がかりはありますか?

4

1 に答える 1

3

私の問題が構成であることがわかりました。Tomcat 6 を使用しているため、追加の設定が必要だとは知りませんでした: http://docs.jboss.org/seam/3/servlet/latest/reference/en-US/html/servlet-installation.html#installation .事前サーブレット-3

私がこれを書いているときのそのページのドキュメントに関する簡単なメモとして、"Catch Exception Filter" のクラスは "org.jboss.seam.servlet.exception.CatchExceptionFilter" である必要があります。ドキュメントには「例外」がありません。Seam Servlet コードで修正されているようですので、このバグは次回ドキュメントがリリースされたときに修正されると思います。

于 2011-09-08T12:20:34.203 に答える