错误为:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1500)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1434)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1420)
at ch03.hibernate.Test.main(Test.java:22)
Caused by: org.dom4j.DocumentException: Error on line 2 of document : The up in the document preceding the root element must be well-formed. Nested exception: The up in the document preceding the root element must be well-formed.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1490)
... 3 more
其中hibernate.cfg.xml<?xml version="1.0" encoding="UTF-8"?>
<! DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hiberate-configuration>
<session-factory>
<! --Database connection settings(数据库连接设置)-->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/MyProject
</property>
<property name="connection.username">root</property>
<propety name="connection.password">root</propety>
<!-- JDBC connection pool(连接池)(use the built-in) -->
<property name="conection.pool_size">1</property>
<!-- SQL dialect(SQL方言)-->
<property name="dialect">org.hibernate.dialect.MYSQLDialect</property>
<!-- Enable Hibernate's automatic session context management-->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cace -->
<property name="cache.provider_class">org.hibernate.cache.NoChacheProvider
</property>
<!-- Echo all executed SQL to stdout-->
<property name="show_sql">true</property>
<!--Drop and re-create the database schema on startup -->
<property name="hbm2.ddl.auto">create</property>
<!-- 映射资源 -->
<mapping resource="ch03/hibernate/User.hbm.xml"/>
</session-factory>
</hiberate-configuration>
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1500)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1434)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1420)
at ch03.hibernate.Test.main(Test.java:22)
Caused by: org.dom4j.DocumentException: Error on line 2 of document : The up in the document preceding the root element must be well-formed. Nested exception: The up in the document preceding the root element must be well-formed.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1490)
... 3 more
其中hibernate.cfg.xml<?xml version="1.0" encoding="UTF-8"?>
<! DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hiberate-configuration>
<session-factory>
<! --Database connection settings(数据库连接设置)-->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/MyProject
</property>
<property name="connection.username">root</property>
<propety name="connection.password">root</propety>
<!-- JDBC connection pool(连接池)(use the built-in) -->
<property name="conection.pool_size">1</property>
<!-- SQL dialect(SQL方言)-->
<property name="dialect">org.hibernate.dialect.MYSQLDialect</property>
<!-- Enable Hibernate's automatic session context management-->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cace -->
<property name="cache.provider_class">org.hibernate.cache.NoChacheProvider
</property>
<!-- Echo all executed SQL to stdout-->
<property name="show_sql">true</property>
<!--Drop and re-create the database schema on startup -->
<property name="hbm2.ddl.auto">create</property>
<!-- 映射资源 -->
<mapping resource="ch03/hibernate/User.hbm.xml"/>
</session-factory>
</hiberate-configuration>
解决方案 »
- Struts1的formBean为何取不到页面的数据?
- 我写了一个调用webservie的程序,请问如何画architecture?
- jsf验证+消息对话框
- 求解一种简便的方法!
- 大家帮忙解决一下struts2的标签问题,谢谢
- hibernate配置文件
- 求救关于ibatis的问题
- 大家帮忙推荐一本学习servlet的书。谢谢了!
- JAVA API 使用起来不太方便,哪里有类似MSDN的有搜索功能的帮助
- myBatis调用 oracle存储过程 出现 PLS-00221: 'F_PARAGRAPH' 不是过程或尚未定义, 那位大神帮帮忙
- 问个关于javabean 的使用问题
- 什么时候构造函数可以不是public的,怎么使用
是说你根元素格式不对如果没有加的话,加入一个什么也没有的空log4j.properties试试
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### set log levels - for more verbose logging change 'info' to 'debug' ###log4j.rootLogger=warn, stdoutlog4j.logger.org.hibernate=info
#log4j.logger.org.hibernate=debug### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast=debug### log just the SQL
#log4j.logger.org.hibernate.SQL=debug### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=error
#log4j.logger.org.hibernate.type=debug### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=info### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug### log cache activity ###
#log4j.logger.org.hibernate.cache=debug### log transaction activity
#log4j.logger.org.hibernate.transaction=debug### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
hibernate.cfg.xml
配置文件有问题!LZ检查检查!
<! DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
改为这样<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">出现了这样的错误:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
org.hibernate.exception.SQLGrammarException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
at ch03.hibernate.Test.main(Test.java:26)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'ch03'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3536)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3468)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:917)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3974)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1282)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2142)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:773)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
... 5 more
这里的错误是hibernate.cfg.xml ,数据库的配置有问题。
1)把log4j的jar加进构建路径
2)Hibernate解压后etc目录下面的log4j.properties拷到src(就是放源代码的目录)下即可
2、在配置文件hibernate.cfg.xml前面加上上面这段声明
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
3、把映射文件userinfo.hbm.xml中的generator生成方式改为native
<generator class="ch03.hibernate.User"/>
改为:<generator class="native"/>
<mapping resource="ch03/hibernate/User.hbm.xml"/> .........
好好看看