tamcat部署项目常见问题及解决方案

tamcat部署 springMVC项目问题及解决方案

记录下tamcat部署 SpringMVC项目过程中遇到的问题,以及解决方案

首先从svn上面检出项目,可以在本地新建一个文件夹,也可以在idea上面新建一个maven项目,用来存放检出的项目

在这里插入图片描述

项目检出成功后,点击pom.xml文件,将其加入maven项目,然后项目会根据pom.xml的自动下载依赖包,项目依赖包下载好以后,配置tamcat容器
点击加号选择tamcat容器版本,我这边用的是8.5版本,有的项目jdk版本和tamcat的版本不匹配,需要降低tamcat的版本,这里根据自己的实际项目来

在这里插入图片描述
tamcat配置过程中遇到过内存溢出问题,解决方式是设置VM options的属性,扩大内存
有的公司有本地环境和测试环境,这里Dspring.profiles.active=dev是让配置文件读取本地环境,Dspring.profiles.active=test则是读取测试环境的配置

-Dspring.profiles.active=dev
-Xms768m
-Xmx768m
-XX:PermSize=64M
-XX:MaxPermSize=512m

点击Deployment右边+号,选择Artifact,这里选择exploded可以自动更新代码,下面Application context设置的是项目启动完毕跳转的地址

在这里插入图片描述

设置成功以后,点击File-Project Stucture 设置项目属性,我这边项目使用的是1.8的jdk,如果项目比较老,可以选择1.6或者根据项目的配置文件选择,下面是项目编译后的目录

在这里插入图片描述

Modules里Dependencies是项目的jar,一般如果pom.xml文件依赖包下载下来的话,是会显示项目所用的jar包,如果没有,可以选择右上角+号手动添加,这个特别说明一下,如果是多个子项目有依赖,需要在项目中添加所依赖的项目的jar,但是一定要注意避免循环依赖,也就是互相依赖

在这里插入图片描述
Libraries一般是项目的jar,如果没有特别添加jar,一般不需要动

在这里插入图片描述
Artifacts里需要注意一下,需要将Aritfact加入到每个模块中,鼠标右键put into output Root ,否则会报错,后面就遇到这种情况

在这里插入图片描述
项目基本配置完成,这时候,可以build一下,看是否成功,如果存在编译问题,极有可能就是配置的依赖包有问题,这时候可以检查一下配置项,是否配置的位置不对,如果实在找不到,可以删除项目重新下载

项目构建没问题,就启动tamcat,这时候,项目会出现各种各样的问题,以下是我遇到的问题及解决方案,仅供参考

首先是idea中部分Java类标识变成一个J,其他引入这些类的class 就会报找不到包的异常,这时说明项目的资源路径配置是有问题的

在这里插入图片描述
resource文件对应于Mark as中的Resource,idea的project structures的modules中Mark As里的Sources内的文件区别

在这里插入图片描述

Error:java: System Java Compiler was not found in classpath: java.lang.ClassNotFoundException:
javaC需要配置1.6
Error:java: 警告: 源发行版 6 需要目标发行版 1.6

这时候报一个jdk版本的问题,这时候我才发现,原来项目是setting中配置的1.5的版本
打开setting,搜索java Compiler 设置项目的jdk的版本,另外勾掉Use compiler form module target JDK when possible,这里是使用自己的jdk,有时候虽然设置了,但是系统仍默认使用自己的jdk,就会报错

在这里插入图片描述

这就是我上面说的循环依赖问题,项目配置过程中,互相依赖,导致项目无法部署,这时候,只要打开配置,删除被依赖的项目的依赖就可以了

Error:Cannot build artifact 'zhxy-oa-java (1):war exploded' because it is included into a circular dependency (artifact 'zhxy-oa-java (1):war exploded', artifact 'zhxy-oa-java:war exploded')

这里就是配置文件没有配置好产生的问题,Ctrl+Alt+Shift+S弹出Project Structure窗口,在Output Layout标签中找到Available Elements,鼠标右击下面的元素:

org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class [org.springframework.web.context.ContextLoaderListener]
 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

在这里插入图片描述

接下来是应用上下文失败,hibernate注入bean失败,这时候,要看自己的项目是否依赖别的项目的jar,或者是配置文件缺少pom.xml文件缺少jar的配置,我这里是缺少一个hibernate的jar

org.springframework.web.servlet.DispatcherServlet,Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'oaActivitiesDao': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'daoSupport' defined in class path resource [spring/springDao.xml]: Cannot resolve reference to bean 'sessionFactory_baseinfo' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory_baseinfo' defined in class path resource [spring/springDao.xml]: Cannot resolve reference to bean 'operateLogEntityInterceptor' while setting bean property 'entityInterceptor'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'operateLogEntityInterceptor' defined in class path resource [spring/springDao.xml]: Cannot resolve reference to bean 'logSessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'logSessionFactory' defined in class path resource [spring/springDao.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError:

简单整理下自己遇到的问题,仅供参考,不定时更新,有问题欢迎留言O(∩_∩)O~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凉梦lm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值