为什么忽略WebApplicationInitializer?

时间:2015-04-02 15:53:09

标签: java spring maven servlets

我有一个用maven构建的Web应用程序(war)。 我正在使用一个旧的struts应用程序(没有选择)。我使用AnnotationConfigApplicationContext和配置类使用spring注释重构旧服务。

我使用JBoss AS 7.0.1。

我需要在我的应用程序中实现Web服务。所以我正在尝试使用DispatcherServlet设置WebApplicationInitializer

我尝试过实现“WebApplicationInitializer”,或者扩展“AbstractDispatcherServletInitializer”,“AbstractAnnotationConfigDispatcherServletInitializer”,但是一旦启动JBoss并部署war就不会检测和处理类。

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" };
    }

} 

1 个答案:

答案 0 :(得分:1)

找到。

检测&#34; WebApplicationInitializer&#34;实现。 添加文件:/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文件中声明它并且有一个条目{{1} }