【SSH整合异常】启动Tomecat报错

来源:互联网 发布:淘宝网男士保暖上衣 编辑:程序博客网 时间:2024/06/05 22:59

在ssh整合时候,在环境里测试没问题,action方法测试也能保存数据,启动tomecat时报错


启动TomeCat时报:

严重: Exception starting filter struts2
Unable to load configuration. - [unknown location]


by: Unable to load configuration. - [unknown location]


Cannot locate the chosen ObjectFactory implementation: spring - [unknown location]






访问时报
Error creating bean with name 'sessionFactory' defined in class path resource [spring/applicationContext-


db.xml]


by: java.lang.IllegalArgumentException: Mapping directory location [ServletContext resource 


[/cn/qjc/s2sh/domain]] does not denote a directory


原因分析:

1、网上答案

a、jar包冲突,检查项目中的jar包是否同时有 xerce.jar和xml-apis.jar这两个jar包,有的话删除xerce.jar 
b、缺了包,struts2-spring-plugin-2.1.6.jar,没有的话引入即可
检查一遍不缺包
2、在struts.xml加上一句
<constant name="struts.objectFactory" value="spring"/>
表示
与spring集成时,指定由spring负责管理action对象的创建,这是报错原因之一。虽然还是报错,但是明显错误不一样了

Error creating bean with name 'sessionFactory' defined in class path resource [spring/applicationContext-db.xml]: Invocation of init method failed;
Caused by: java.lang.IllegalArgumentException: Mapping directory location [ServletContext resource [/cn/qjc/s2sh/domain]]
3、这是第二个错,报错位置在spring配置文件中引入hibernate的sessionFactory的时候
<span style="white-space:pre"></span><!-- 引入sessionFactory --><bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><!-- 映射文件所在的路径 --><property name="mappingDirectoryLocations"><list><!-- spring容器会去该包及子包下搜索所有的映射文件 --><span style="color:#ff0000;"><value>cn/qjc/s2sh/domain</value></span></list></property><property name="hibernateProperties"><props><!-- 方言 -->
把红色代码修改为
<span style="white-space:pre"></span><!-- spring容器会去该包及子包下搜索所有的映射文件 --><value><strong><span style="color:#ff0000;">classpath:</span></strong>cn/qjc/s2sh/domain</value>
完美解决!

0 0
原创粉丝点击