ServletContainerInitializer

ServletContainerInitializer

我有一个用Maven构建的Web应用程序(战争)。
我正在使用旧的struts应用程序(别无选择)。我正在使用AnnotationConfigApplicationContext和配置类通过spring注释重构旧服务。

我使用JBoss AS 7.0.1。

我需要在我的应用程序中实现Web服务。因此,我尝试使用DispatcherServlet设置WebApplicationInitializer

我已经尝试通过实现“ WebApplicationInitializer”或扩展“ AbstractDispatcherServletInitializer”,“ AbstractAnnotationConfigDispatcherServletInitializer”来实现,但是一旦启动JBoss并部署了战争,就不会检测到并处理该类。

Jboss如何检测这种类型的类。我们是否必须在某处设置声明。

我最后一次尝试的示例代码:

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer   {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        String test = "";
        test.toLowerCase();
        return null;
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        String test = "";
        test.toLowerCase();
        return new Class[] {ApplicationContextConfiguration.class};
    }

    @Override
    protected String[] getServletMappings() {
        String test = "";
        test.toLowerCase();
        return new String[] {
                "*.html"
                ,"*.json" };
    }

}

最佳答案

发现。

检测“ WebApplicationInitializer”的实现。
添加文件:/META-INF/services/javax.servlet.ServletContainerInitializer
在JAR中设置此文件

设置完整的包装和类别名称:
com.xxxxxxx.AbstractAnnotationConfigDispatcherServletInitializer


  Spring通过SpringServletContainerInitializer类实现ServletContainerInitializer。根据Servlet规范,此实现必须在库jar文件的META-INF / services / javax.servlet.ServletContainerInitializer文件中声明-Spring在spring-web * .jar jar文件中声明并具有条目org.springframework.web.SpringServletContainerInitializer

10-08 20:01