有没有办法如何在弹簧靴内运行madvoc?

时间:2016-03-10 19:01:18

标签: spring-boot jodd

有没有办法在Spring Boot中运行Madvoc web微框架?

Spring Boot允许集成其他技术(我们在Spring Boot下运行Apache Wicket进行了实验)。

这可能是JODD madvoc吗?有没有合适的配置示例?

编辑#1 我试图为Madvoc添加Spring Boot servlet过滤器配置,但是看不到像这样的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);
    }

}

1 个答案:

答案 0 :(得分:0)

好的,简而言之,我们有Servlets 3.x注册Madvoc过滤器的方式,它将注册所有内容。

请查看Servlets 3 here的工作示例。

您的代码看起来不错,但您可以检查以下内容:

  1. 也许Springboot只是隐藏了Jodd的日志,而你却没有看到它正在运行。

  2. 如果您过滤到/jodd/*可能会出现问题:)默认情况下,操作将映射到例如/index.html代替/jodd/index.html。因此,您将无法运行操作。要对此进行测试,请将过滤器映射到root(/*)并查看您是否可以立即访问您的Madvoc操作:)

  3. 将Spring注入Madvoc操作 - 检查课程PetiteMadvocController。这个人在madvoc注入了Petite豆子(是的,无论如何都需要Spring :)。基本上,您只需要在Springs应用程序上下文中创建动作类。