使用eclipse+Maven部署Servlet3.0Web时的一个问题
2016-06-17 01:04
645 查看
今天,尝试了一下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。
开发环境用的是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。
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- MyEclipse Web Project转Eclipse Dynamic Web Project
- Windows Clang开发环境备忘
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- 傻瓜式用Eclipse连接MySQL数据库
- Eclipse引入jquery报错如何解决
- 让Flex Builder 3.0与Eclipse3.4整合起来
- Eclipse配置Javascript开发环境图文教程
- 模拟Spring的简单实现
- 使用zend studio for eclipse不能激活代码提示功能的解决办法
- Spring整合WebSocket应用示例(上)
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解