您的位置:首页 > 其它

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

2016-03-31 00:28 363 查看
在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>
完美解决!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  异常