使用eclipse+Maven部署Servlet3.0Web时的一个问题

本文介绍如何使用SpringMVC3.2进行免web.xml部署,并通过Maven和Eclipse实现。文章详细记录了配置过程及遇到的问题,即Tomcat未能自动扫描ServletContainerInitializer实现。最终发现原因是缺少必要的jar包部署。

今天,尝试了一下Spring MVC 3.2的一个对Servlet3.0免web.xml部署。
开发环境用的是Maven+eclipse。

正常流程是,
1. 写好自己的继承于AbstractAnnotationConfigDispatcherServletInitializer的Initializer,在里边配置RootConfigClasses(作为WebApplicationContext)和ServlectConfigClass(作为ServletApplicationContext)。
2. 编写WebApplicationContext设定视图解析器。
3. 部署
正常情况下,7.0以上的Tomcat是支持Servlet3.0的,也就是会自动去扫描ServletContainerInitializer的实现,Spring中是org.springframework.web.SpringServletContainerInitializer。这个类会根据我们在步骤1中所定义的两个Spring容器的定义来加载Spring容器,并完成初始化DispatcherServlet等工作。但最终我却发现tomcat并没有这么做。

找了半天原因,最后发现,我的deploy有问题,并没有把Maven管理的jar包部署到WEB-INF/lib这个目录下,所以tomcat当然扫描不到SpringServletContainerInitializer这个类。从而也就不会加载DispatcherServlet和我们的Controller等。


解决办法:
右键项目->Properties->Deployment Assembly中,Add->Java Build Path Entries,选择 Maven Dependencies,设定它的Deploy Path为WEB-INF/lib(一般默认就会是WEB-INF/lib)。再重新部署,OK。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值