2011-10-26 15 views
2

私はJetty組み込みサーバを起動しました。webappを埋め込みJettyに追加/削除

私は、Webアプリケーションのホットデプロイを行い、再びプログラムをすべてアンロードできるようにしたいと考えています。

サーバが起動すると、ハンドラを追加しようとするとエラーが発生します。

私はContextHandlerCollectionを使用していましたが、.addContext()を使用して起動して実行しましたが、それが正しいかどうかはわかりませんでした。

誰かが正しい方向に向けることができますか?ありがとう

答えて

2

このホットスワップは私のために働きます(Jetty 7) - このコードは、起動時に定義されたWebアプリケーションと既存のハンドラを介してループするためのものです。新しいWebアプリケーションを動的に追加するには、見つかったフラグロジックを追加するだけで済みます。 HTH。

public void updateWar(String contextPath, String warPath) 
{ 
Handler[] hs = handlers.getHandlers(); 
for(int i = 0; i < hs.length; i++) 
{ 
    Handler h = hs[i]; 
    if(h != null) 
    { 
     if(h instanceof WebAppContext) 
     { 
      WebAppContext wac = (WebAppContext)h; 
      String wacwar = wac.getWar(); 

      if(wacwar.equals(warPath)) 
      { 
       try 
       { 
        handlers.stop(); 
        wac.stop(); 
        wac.destroy();       
        handlers.removeHandler(wac); 
        wac = new WebAppContext(); 
        wac.setContextPath(contextPath); 
        wac.setWar(warPath); 
        handlers.addHandler(wac); 
        handlers.start(); 
       } 
       catch (Exception e) 
       { 
        e.printStackTrace(); 
       } 
      } 
     } 
    } 
} 
} 
+0

ようこそStackoverflowへようこそ。 FAQのすべてのセクションにアクセスするのに時間を忘れないでください。それはあなたのStackoverflowの経験を育成するために役立つかもしれませんし、ボーナスとしてボーナスを得るでしょう;-) – menjaraz

+0

また、ホットスワップを管理するように見える新しいWebAppProviderがありますが、私はまだ働くことを得ていません。 http://download.eclipse.org/jetty/stable-7/apidocs/org/eclipse/jetty/deploy/providers/WebAppProvider.html – user981

関連する問題