2015-04-02 142 views
1

我有一个用maven构建的Web应用程序(war)。 我正在使用旧的struts应用程序(无选择)。我使用AnnotationConfigApplicationContext和一个配置类来重构使用弹簧注释的旧服务。为什么忽略WebApplicationInitializer?

我使用JBoss AS 7.0.1。

我需要在我的应用程序中实现Web服务。所以我试图使用WebApplicationInitializer来设置DispatcherServlet。我试过通过实现,“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" }; 
    } 

} 
+0

您是否尝试阅读以下内容:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-servlet? – 2015-04-02 20:36:12

回答

1

找到。

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

设置在充分packagge和类名: com.xxxxxxx.AbstractAnnotationConfigDispatcherServletInitializer

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

+0

另外我认为这不是一种友好的用途。所以我更喜欢“web.xml”“DispatcherServlet”声明。 – Anthony 2015-04-03 11:55:02

+1

Sprig已经定义了这个文件,所以你不需要自己用它搞乱它。所以这不是解决方案... – 2015-04-03 11:55:55