0

FirstApplicationからのメッセージの送信、消費、Activemqおよび展開に関するプロジェクト名を作成しますTomcat7。展開後、リンクをトリガーする必要があるhttp://localhost:8080/FirstApplication/PackageName/SecondConsumerのは 1 回だけです。これまでのところ問題ありません。

私の疑問は、後でサーバーを再起動した場合、最初にそのサーブレットに対応するリンクをトリガーする必要があることです。このようにする代わりに、構成したいと思います。

注:私が望むのは、Tomcat serverstart.servlet が下に配置されるたびに、サーブレットが自動的に評価される必要があることWebApps/FirstApplication/WEB-INF/src/classes/PackageName/SecondConsumer.javaです。

このために、servletContextListenerクラスを使用して次のコードを試しました。

 public class SecondConsumer extends HttpServlet implements ServletContextListener{
 @Override
 protected void service(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
   //my business code
 }
 @Override
 public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub

 }

 @Override
 public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub

 }
}

次の方法でファイルに追加<Listener>しました。web.xml(which is placed under WebApps/FirstApplication/WEB-INF/web.xml)

    <listener>
    <listener-class>PackageName.SecondConsumer</listener-class>
   </listener>

私のコードを観察すると、メソッドの下にコードを実装していません。時間の開始時contextInitialized and contextDestroyedにこのサーブレット コードを評価したいだけです。server

上記の方法で試しましたが、うまくいきません。

誰か私に提案してください。

ありがとう。

4

3 に答える 3

4

を実装するクラスで初期化を行うServletContextListener必要があるため、次のようなものが必要です

@WebListener
public class AppServletContextListener implements ServletContextListener{

    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        System.out.println("ServletContextListener destroyed");
    }

    @Override
    public void contextInitialized(ServletContextEvent arg0) {
         //do your init steps here  
    }
}

このコードは、サーバーが起動または停止するたびに実行されます。WebListenerアノテーションは Java EE 6 でのみ機能することに注意してください。それ以前<listener>は、web.xml.

于 2013-09-16T19:12:52.193 に答える
1

Tomcat は実行中にサーブレットのインスタンスを作成するため、サーブレットを呼び出したい場合は、Tomcat 自体の実行中に実際にトリガーされるコンテキスト リストナー クラスを使用してください。

ありがとう

于 2013-09-16T19:07:52.423 に答える
0

あなたが何を望んでいるのか、よくわかりません。tomcat の起動中に単にコードを実行したい場合は、ServletContextListenerを構成します。

于 2013-09-16T19:12:41.580 に答える