我有一个用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