问答详情
源自:1-3 实体和映射的创建

生成数据库表时sessionFactory报错

1.报错问题

16:53:01,357  INFO ContextLoader:273 - Root WebApplicationContext: initialization started

16:53:01,471  INFO XmlWebApplicationContext:510 - Refreshing Root WebApplicationContext: startup date [Wed Apr 08 16:53:01 CST 2020]; root of context hierarchy

16:53:01,544  INFO XmlBeanDefinitionReader:315 - Loading XML bean definitions from class path resource [applicationContext.xml]

16:53:01,871  INFO PropertySourcesPlaceholderConfigurer:172 - Loading properties file from class path resource [jdbc.properties]

16:53:01,919  INFO DefaultListableBeanFactory:598 - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@5f4af6a: defining beans [org.springframework.context.support.PropertySourcesPlaceholderConfigurer#0,dataSource,sessionFactory,transactionManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor]; root of factory hierarchy

16:53:01,943  INFO MLog:80 - MLog clients using log4j logging.

16:53:01,993  INFO C3P0Registry:204 - Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]

16:53:02,229  INFO Environment:560 - Hibernate 3.3.2.GA

16:53:02,232  INFO Environment:593 - hibernate.properties not found

16:53:02,238  INFO Environment:771 - Bytecode provider name : javassist

16:53:02,244  INFO Environment:652 - using JDK 1.4 java.sql.Timestamp handling

16:53:04,033  INFO DefaultListableBeanFactory:444 - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@5f4af6a: defining beans [org.springframework.context.support.PropertySourcesPlaceholderConfigurer#0,dataSource,sessionFactory,transactionManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor]; root of factory hierarchy

16:53:04,036 ERROR ContextLoader:319 - Context initialization failed

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: Could not parse mapping document from input stream

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1512)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:610)

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)

at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)

at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)

at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5136)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5662)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1007)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:983)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:639)

at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1296)

at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2038)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

at java.util.concurrent.FutureTask.run(FutureTask.java:262)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:745)

Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream

at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:555)

at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:680)

at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)

... 25 more

Caused by: org.dom4j.DocumentException: http://hibernate.org/dtd/hibernaste-mapping-3.0.dtd Nested exception: http://hibernate.org/dtd/hibernaste-mapping-3.0.dtd

at org.dom4j.io.SAXReader.read(SAXReader.java:484)

at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:546)

... 29 more

四月 08, 2020 4:53:04 下午 org.apache.catalina.core.StandardContext listenerStart

严重: 异常将上下文初始化事件发送到类的侦听器实例.[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: Could not parse mapping document from input stream

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1512)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:293)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:610)

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)

at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)

at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)

at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5136)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5662)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1007)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:983)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:639)

at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1296)

at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2038)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

at java.util.concurrent.FutureTask.run(FutureTask.java:262)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:745)

Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream

at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:555)

at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:680)

at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)

... 25 more

Caused by: org.dom4j.DocumentException: http://hibernate.org/dtd/hibernaste-mapping-3.0.dtd Nested exception: http://hibernate.org/dtd/hibernaste-mapping-3.0.dtd

at org.dom4j.io.SAXReader.read(SAXReader.java:484)

at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:546)

... 29 more


四月 08, 2020 4:53:04 下午 org.apache.catalina.core.StandardContext startInternal

重: One or more listeners failed to start. Full details will be found in the appropriate container log file

四月 08, 2020 4:53:04 下午 org.apache.catalina.core.StandardContext startInternal

严重: Context [/ssh_employee] startup failed due to previous errors

四月 08, 2020 4:53:04 下午 org.apache.catalina.core.ApplicationContext log

信息: Closing Spring root WebApplicationContext

四月 08, 2020 4:53:04 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Deployment of web application directory [D:\Java\Tomcat 7.0\webapps\ssh_employee] has finished in [5,268] ms

四月 08, 2020 4:53:04 下午 org.apache.coyote.AbstractProtocol start

信息: 开始协议处理句柄["http-bio-8080"]

四月 08, 2020 4:53:04 下午 org.apache.catalina.startup.Catalina start

信息: Server startup in 6190 ms

2.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:context="http://www.springframework.org/schema/context"

xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans 

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop.xsd

http://www.springframework.org/schema/tx 

http://www.springframework.org/schema/tx/spring-tx.xsd">

<!-- 引入外部的属性文件 -->

<context:property-placeholder location="classpath:jdbc.properties"

ignore-unresolvable="true" />


<!-- 配置c3p0连接池 -->

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"

destroy-method="close">

<property name="driverClass" value="${jdbc.driverClassName}" />

<property name="jdbcUrl" value="${jdbc.url}" />

<property name="user" value="${jdbc.username}" />

<property name="password" value="${jdbc.password}" />

<!-- 初始化建立的连接数 -->

<property name="initialPoolSize" value="10" />

<!-- 最大空闲时间,120秒内未被使用的连接将被丢弃 -->

<property name="maxIdleTime" value="120" />

<!-- 当连接池耗尽,且未达到最大连接数时,一次获取的连接数 -->

<property name="acquireIncrement" value="2" />

<!-- 空闲检查时间间隔, 每隔120秒检查连接池里的空闲连接 ,单位是秒 -->

<property name="idleConnectionTestPeriod" value="60" />

</bean>


<!-- 配置Hibernate的相关属性 -->

<bean id="sessionFactory"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<!-- 注入c3p0连接池 -->

<property name="dataSource" ref="dataSource"></property>

<!-- 配置Hibernate的属性 -->

<property name="hibernateProperties">

<props>

<!-- 1.配置数据库方言 -->

<prop key="hibernate.diaect">org.hibernate.dialect.MySQLDialect</prop>

<!-- 2.输出底层SQL语句 -->

<prop key="hibernate.show_sql">true</prop>

<!-- 3.输出底层SQL语句格式化 -->

<prop key="hibernate.format_sql">true</prop>

<!-- 4.hibernate帮忙创建表,需要在配置之后更新 -->

<!-- 5.update:如果已有表,更新表,没有表,创建表 -->

<prop key="hibernate.hbm2ddl.auto">update</prop>

</props>

</property>

<!-- 加载Hibernate中的映射文件 -->

<property name="mappingResources">

<list>

<value>com/employee/domain/Department.hbm.xml</value>

<value>com/employee/domain/Employee.hbm.xml</value>

</list>

</property>

</bean>

<!-- 配置Action类 -->



<!-- 配置业务层Service的类 -->



<!-- 配置Dao的类 -->



<!-- 配置事务管理器 -->

<bean id="transactionManager"

class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory" ref="sessionFactory"></property>

</bean>


<!-- 开启注解事务 -->

<tx:annotation-driven transaction-manager="transactionManager" />

</beans>

3.Department.hbm.xml代码


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC 

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://hibernate.sourceforge.net/hibernaste-mapping-3.0.dtd">

<hibernate-mapping>

<class name="com.employee.domain.Department" table="department">

<!-- 主键 -->

<id name="did" column="did">

<generator class="native"></generator>

</id>

<property name="dname" column="dname" length="20"></property>

<property name="ddesc" column="ddesc" length="100"></property>

<!-- 关联关系的映射 外键名称dno -->

<set name="employee">

<key column="dno"/>

<one-to-many class="com.employee.domain.Employee"></one-to-many>

</set>

</class>

</hibernate-mapping>

4.Employee.hbm.xml代码


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC 

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

<class name="com.employee.domain.Employee" table="employee">

<id name="eid" column="eid">

<generator class="native"></generator>

</id>

<property name="ename" column="ename" length="20"></property>

<property name="sex" column="sex" length="20"></property>

<property name="birthday" column="birthday"></property>

<property name="joinDate" column="joinDate"></property>

<property name="eno" column="eno" length="20"></property>

<property name="username" column="username" length="20"></property>

<property name="password" column="password" length="20"></property>


<!-- 配置关联关系的映射 一个部门对应多个员工 -->

<many-to-one name="department" class="com.employee.domain.Department"

column="dno"></many-to-one>

</class>

</hibernate-mapping>

5.web.xml代码


<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns="http://java.sun.com/xml/ns/javaee"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

id="WebApp_ID" version="3.0">

<!-- Struts2框架核心过滤器配置 -->

<filter>

<filter-name>struts</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>struts</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- Spring框架核心监听器 -->

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<!-- 加载spring文件的路径 -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>



<display-name>ssh</display-name>

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

<welcome-file>default.html</welcome-file>

<welcome-file>default.htm</welcome-file>

<welcome-file>default.jsp</welcome-file>

</welcome-file-list>

</web-app>

applicationContext.xml恩文件是我从上一篇SSH整合中复制过来的,ssh启动正常,ssh_employee启动就报错。

提问者:慕侠8922259 2020-04-08 17:11

个回答

  • 慕侠8922259
    2020-04-13 14:53:24

    问题已解决

    .hbm.xml中的头部错误

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!--   Mapping file autogenerated by MyEclipse Persistence Tools-->


  • 慕侠8922259
    2020-04-08 17:13:50

    补充:

    http://img3.mukewang.com/5e8d95c900018b5909540896.jpg