关闭

maven之ContextLoaderListener和sqlSessionFactory没找到

标签: ContextLoaderListenesqlSessionFactory没找到
245人阅读 评论(0) 收藏 举报

刚开始使用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
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2736次
    • 积分:143
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章存档