1

Spring Boot 内でMadvoc Web マイクロフレームワークを実行する方法はありますか?

Spring Boot は、他のテクノロジーの統合を可能にします (Spring Boot で実行される Apache Wicket を実験しました)。

これはJODD maadvocで可能ですか? 適切な構成例はありますか?

編集 #1 Madvoc の Spring Boot サーブレット フィルター構成を追加しようとしましたが、次のような Madvoc init 出力が表示されません。

INFO jodd.madvoc.Madvoc - Madvoc starting... 
INFO jodd.madvoc.Madvoc - Default Madvoc web application created.

これは私の初期化コードがどのように見えるかです...

@Configuration
public class MadvocInitializer implements ServletContextInitializer {

    @Override
    public void onStartup(ServletContext sc) throws ServletException {
        FilterRegistration filter = sc.addFilter("madvoc", MadvocServletFilter.class);
        filter.setInitParameter("madvoc.webapp","app.web.jodd.AppWebApplication");

        EnumSet NON_ASYNC_DISPATCHER_TYPES =
                EnumSet.of(DispatcherType.FORWARD, DispatcherType.INCLUDE,DispatcherType.REQUEST);

        filter.addMappingForUrlPatterns(NON_ASYNC_DISPATCHER_TYPES, true, "/jodd/*");

        System.out.println("+++ MADVOC FILTER");
    }
}

編集 #2 フィルター構成は、以下のように「AppWebApplication」を参照します。「registerMadvocComponents」コードから出力メッセージが表示されるので、何かが実行されていることは間違いありません。

public class AppWebApplication extends WebApplication {

    @Override
    public void registerMadvocComponents() {
        super.registerMadvocComponents();

        System.out.println("+++ MADVOC FILTER - configuration");

        registerComponent(MadvocConfig.class);
       // registerComponent(MyRewriter.class);
    }

}
4

1 に答える 1

0

簡単に言うと、すべてを登録する Madvoc フィルターを登録する Servlets 3.x の方法があります。

サーブレット 3 の動作例はこちらで確認してください。

あなたのコードは問題ないように見えますが、確認できることは次のとおりです。

  1. おそらく、Springboot は Jodd からログを隠しているだけで、それが機能していることを確認していません。

  2. にフィルタリングすると問題が発生する可能性があります/jodd/*:) デフォルトでは、アクションは/index.htmlではなくeg にマップされ/jodd/index.htmlます。したがって、アクションを実行することはできません。これをテストするには、フィルターをルート ( /*) にマップして、Madvoc アクションにアクセスできるかどうかを確認してください:)

Spring を Madvoc アクションに注入するには、クラスをチェックしPetiteMadvocControllerます。これPetiteは madvoc に Bean を注入します (はい、とにかく Spring が必要なのは誰ですか :)。基本的に、Springs アプリケーション コンテキストでアクション クラスを作成するだけで済みます。

于 2016-03-11T11:07:15.837 に答える