maven之ContextLoaderListener和sqlSessionFactory没找到

刚开始使用maven时,感觉无需在意导入的包,可没想到还是在包的导入遇上了问题,这困惑了很多新人(包括我)

在网上搜索,解决了一些问题。

参考地址:http://www.yihaomen.com/article/java/471.htm

遇见的示列:

程序一旦启动就会:

java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener, 

这说明没有找到在 web.xml 里面配置的 listener,

 但maven 的pom.xml  里面已经配置相应的包,

而且可以在java 工程的maven dependency jar 包里面找到, 这说明maven是没有问题的

若配置文件确实没问题,那么这一切的根源在于:

关于版本冲突的问题,maven没那么智能,去识别,需要自己去exclude

如果不是maven wtp web工程,那就用eclipse的dependency 视图分析,找到那个找不到的类,确定在类路径中。

下面是解决的方法:
1. 右键单击工程项目 ->点击 properties
2. 选择 Deployment Assembly
3. 点击 Add -> Java Build Path Entries -> Next
4. 选择 Maven Dependencies -> Finish -> Apply -> OK
5. Clean project and server. 重启server

这样就能解决maven  下找不到 spring listener 的问题。

一个最明显的变化是你的web 工程里面明显多了一个jar包。

可是,还会有瑕疵。

后来运行程序,当运行到mybatis.xml(也就是将数据连接池<dataSource>和daoImpl.xml(写sql语句的那个文件)连接起来的那个文件)

具体的就是这里:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:cn/shop/core/dao/*.xml"/>
<property name="typeAliasesPackage" value="cn.shop.core.bean"></property>
</bean>

居然找不到sqlSessionFactory,其原因就是maven没那么智能去识别

所以不能一味地指望程序帮自己实现所有的功能。

这个时候使用ctrl shift t 能找到(找到那个找不到的类),从而确定该选那个jar(版本太多导致)

即便真没有,它这个时候也会自动下载

(前提是settings里面的下载的路径足够给力,不然可能下载不了)




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值