2

標準の Maven webapp 構造が定義されており、Spring MVC を使用しています。

開発中のアプリケーションをテストするために、組み込みの Jetty サーバー (Java クラス) を使用しています。

Jetty サーバーの作成に使用されるコードの概要を以下に示します。JSP ファイルに変更を加えると、その変更はブラウザーにすぐに表示されます。

しかし、コントローラなどのクラス ファイルを変更すると、その変更はホット デプロイされませんか?

これを機能させるにはどうすればよいですか?

これを検索しましたが、クラスorg.eclipse.jetty.util.Scannerと特にsetScanIntervalメソッドを使用する必要があると思いますが、これを接続する方法がわかりませんか?

サーバーを作成するコードは次のとおりです

    String webAppDir = "src/main/webapp/";
    Server server = new Server(8080);
    WebAppContext webApp = new WebAppContext();
    webApp.setContextPath("/");
    webApp.setDescriptor(webAppDir + "/WEB-INF/web.xml");
    webApp.setResourceBase(webAppDir);
    webApp.setParentLoaderPriority(true);

    HandlerCollection hc = new HandlerCollection();
    ContextHandlerCollection contextHandlerCollection = new ContextHandlerCollection();
    hc.setHandlers(new Handler[] { contextHandlerCollection });
    hc.addHandler(webApp);
    server.setHandler(hc);
    return server;

前もって感謝します

4

1 に答える 1

3

ホットデプロイメントの場合は、WebAppProviderとDeploymentManagerを使用する必要があります。変更のスキャンとWebアプリのリロードを管理するように構成できるもの。したがって、WebappContextはWebアプリケーションのデプロイを管理するものではなく、デプロイされるのは単なるコンテナークラスであるため、デプロイ/再デプロイの概念を処理できるメカニズムの外部で機能する別のメカニズムがあることは明らかです。

http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/jetty-deploy/src/test/resources/jetty-deploy-wars.xml

そこでxmlのチャンクを取得し、これを埋め込むために必要なJava呼び出しに変換できます。

または、クラスの自動リロードを提供するjrebeljvmプラグインのようなものを使用します。

于 2012-10-05T13:30:34.890 に答える