TomcatまたはJBossによって.warファイルがデプロイされるとすぐにいくつかのメソッドを実行したいのですがどうすればいいですか?Java:.warファイルがデプロイされたときにメソッドを実行
私はServletContextListener
を試しましたが、動作しません。おかげさまで
TomcatまたはJBossによって.warファイルがデプロイされるとすぐにいくつかのメソッドを実行したいのですがどうすればいいですか?Java:.warファイルがデプロイされたときにメソッドを実行
私はServletContextListener
を試しましたが、動作しません。おかげさまで
はOK、これは、JBossと連携して動作します。
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ejb.Startup;
import javax.ejb.Singleton;
@Singleton
@Startup
public class InitializerEjb {
@PostConstruct
public void init() {
SMTPServer smtp_server = SMTPServer.getInstance();
smtp_server.start();
}
}
これはTomcatで動作します。
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class Initializer implements ServletContextListener {
@Override
public final void contextInitialized(final ServletContextEvent sce) {
SMTPServer smtp_server = SMTPServer.getInstance();
smtp_server.start();
}
}
あなたはサーブレットであなたのメソッドを追加しようとした後、あなたののWeb.xmlで起動
上でそれを実行した:私はこれを解決
<servlet>
<servlet-name>YourServlet</servlet-name>
<servlet-class>com.your.domain.YourServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
こちらをご覧ください:http://stackoverflow.com/questions/6610370/jboss-tomcat-deploy-listenerそれはあなたの問題を解決するはずです。 JBoss JMX APIを見ましたか?他の中には、デプロイメントを管理できるMainDeployer MBeanがありますが、まだデプロイされていないものをチェックするために呼び出すことができるメソッドlistIncompletelyDeployed()があります。ListenerServiceMBeanSupportを使用すると、 まあまあ私はあなたに正確な解決策を教えてもらえませんが、JMXを掘り起こすことで必要なものが得られるかもしれません。 –
なぜサーブレットのイニシャライザを使用しないのですか? – blgt
'ServletContextListener'はそのトリックを行うべきです。あなたはどんな問題に遭遇しましたか? '@ WebListener'アノテーションを追加しましたか? –