ssh框架搭建求助,sessionFactory创建失败。

The_sam 2015-11-03 01:17:38
刚刚学习搭建ssh框架,但是在tomcat运行时却出现了这样的错误:
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.InvalidMappingException: Unable to read XML
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:567)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4334)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: org.hibernate.InvalidMappingException: Unable to read XML
at org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:109)
at org.hibernate.cfg.Configuration.add(Configuration.java:478)
at org.hibernate.cfg.Configuration.add(Configuration.java:474)
at org.hibernate.cfg.Configuration.add(Configuration.java:647)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:685)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:272)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
... 36 more
Caused by: org.dom4j.DocumentException: http://hibernate.org/dtd/hibernate-mapping-3.0.dtd%20 Nested exception: http://hibernate.org/dtd/hibernate-mapping-3.0.dtd%20
at org.dom4j.io.SAXReader.read(SAXReader.java:484)
at org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:78)
... 43 more

我的applicationContext.xml是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"
xmlns:tx="http://www.springframework.org/schema/tx">


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>

<property name="url"
value="jdbc:mysql://localhost:3306/jkxyshsflower?useUnicode=true&characterEncoding=utf-8">
</property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/jkxy/model/Flower.hbm.xml</value>
<value>com/jkxy/model/Guashi.hbm.xml</value>
<value>com/jkxy/model/Orderitem.hbm.xml</value>
<value>com/jkxy/model/Orders.hbm.xml</value>
<value>com/jkxy/model/Userdetail.hbm.xml</value>
<value>com/jkxy/model/Catalog.hbm.xml</value>
<value>com/jkxy/model/User.hbm.xml</value>
</list>
</property>
</bean>

<bean id="catalogDAO" class="com.jkxy.dao.impl.CatalogDAO">
<property name="sessionfactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="catalogService" class="com.jkxy.service.impl.CatalogService">
<property name="catalogDAO" ref="catalogDAO"></property>
</bean>

<bean id="flowerDAO" class="com.jkxy.dao.impl.FlowerDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="flowerService" class="com.jkxy.service.impl.FlowerService">
<property name="flowerDAO" ref="flowerDAO"></property>
</bean>
<bean id="flowerAction" class="com.jkxy.action.flowerAction">
<property name="catalogService" ref="catalogService"></property>
<property name="flowerService" ref="flowerService"></property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
</beans>

在每个dao里面都有sessionFactory的get、set方法
如:
public class CatalogDAO implements ICatalogDAO {
private SessionFactory sessionFactory;

public SessionFactory getSessionfactory() {
return sessionFactory;
}

public void setSessionfactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
}

但是就是不知道哪里错了?求前辈解答,谢谢
...全文
345 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
搬运工木木 2015-11-05
  • 打赏
  • 举报
回复
<value>com/jkxy/model/Flower.hbm.xml</value> <value>com/jkxy/model/Guashi.hbm.xml</value> <value>com/jkxy/model/Orderitem.hbm.xml</value> <value>com/jkxy/model/Orders.hbm.xml</value> <value>com/jkxy/model/Userdetail.hbm.xml</value> <value>com/jkxy/model/Catalog.hbm.xml</value> <value>com/jkxy/model/User.hbm.xml</value> 这段先全删除掉,看是不是不出错了 如果不出错,继续下面的操作 一行行加上去,加到哪行出错,那个文件里就有错误
ZHOU西口 2015-11-05
  • 打赏
  • 举报
回复
1、先检查连接数据库的url,user,pwd是否正确 2、Hibernate持久化xml文件是否规范 3、实体与表的对应关系是否正确
  • 打赏
  • 举报
回复
entities里的映射xml出了问题吧?
wangzhngyx 2015-11-03
  • 打赏
  • 举报
回复
Caused by: org.dom4j.DocumentException: http://hibernate.org/dtd/hibernate-mapping-3.0.dtd%20 Nested exception: http://hibernate.org/dtd/hibernate-mapping-3.0.dtd%20 at org.dom4j.io.SAXReader.read(SAXReader.java:484) 少包吧?
The_sam 2015-11-03
  • 打赏
  • 举报
回复
我这个配置文件的SessionFactoryBean是自动生成的呀,配置文件路径试过了,applicationContext.xml路径在web.xml里面的路径配置应该是对的,至于SessionFactoryBean的路径它是直接从jar包里面的,只有.class文件,应该不会出错,AnnotationSessionFactory可以替代LocalSessionFactoryBean 吗?怎么用?求思路
super_Leon 2015-11-03
  • 打赏
  • 举报
回复
LocalSessionFactoryBean 这个。。建议用AnnotationSessionFactory
oLeiChang 2015-11-03
  • 打赏
  • 举报
回复
明显是读取XML路径没写对,或者是xml位置没放对啊,记得分给我!
sinat_31535993 2015-11-03
  • 打赏
  • 举报
回复
Caused by: org.dom4j.DocumentException: http://hibernate.org/dtd/hibernate-mapping-3.0.dtd%20 Nested exception: http://hibernate.org/dtd/hibernate-mapping-3.0.dtd%20 at org.dom4j.io.SAXReader.read(SAXReader.java:484) 映射出错了吧

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧