问题描述
当试图在我的应用程序中使用 Hibernate
时出现以下错误:
org.hibernate.HibernateException:无法解析配置:hibernate.cfg.xml
这是什么造成的?请参阅 hibernate.cfg.xml
,输出
和 Runner类
below?
注意:我已经看过
<?xml version = 1.0encoding =UTF-8?>
<!DOCTYPE hibernate-configuration PUBLIC
- // Hibernate / Hibernate配置DTD 3.0 // EN
http://hibernate.sourceforge.net/hibernate-configuration-3.0 .dtd>
< hibernate-configuration>
< session-factory>
< property name =hibernate.connection.driver_class> com.mysql.jdbc.Driver< / property>
< property name =hibernate.connection.url> jdbc:mysql:// localhost:3306 / hibernatex< / property>
< property name =hibernate.connection.username>根< / property>
< property name =hibernate.connection.password>根< / property>
< property name =hibernate.dialect> org.hibernate.dialect.MySQLDialect< / property>
< mapping resource =com / ora / hibernate / examples / Employee.hbm.xml
package =com.ora.hibernate.examples/>
< / session-factory>
< / hibernate-configuration>
I am getting the following error when trying to use Hibernate
withing my application:
org.hibernate.HibernateException: Could not parse configuration: hibernate.cfg.xml
What is causing this? Please see hibernate.cfg.xml
, output
and Runner class
below?
Note: I have looked at this answer and tried to fix it using suggestions, but with no luck.
hibernate.cfg.xml:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test-db</property>
<property name="connection.username">user</property>
<property name="connection.password">password</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- Use XML-based mapping metadata -->
<!-- <mapping resource="domain/Message.hbm.xml"/> -->
<!-- Use Annotation-based mapping metadata -->
<mapping class="entity.Message"/>
</session-factory>
</hibernate-configuration>
Output:
Successfully started process 'command 'C:\Program Files\Java\jdk1.8.0_65\bin\java.exe''
Dec 16, 2015 12:01:20 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
Dec 16, 2015 12:01:20 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.5.Final}
Dec 16, 2015 12:01:21 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Dec 16, 2015 12:01:21 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Dec 16, 2015 12:01:21 AM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: hibernate.cfg.xml
Dec 16, 2015 12:01:21 AM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: hibernate.cfg.xml
Initial SessionFactory creation failed.org.hibernate.HibernateException: Could not parse configuration: hibernate.cfg.xml
Exception in thread "main" java.lang.ExceptionInInitializerError
at util.HibernateUtil.buildSessionFactory(HibernateUtil.java:25)
at util.HibernateUtil.<clinit>(HibernateUtil.java:12)
at client.HelloWorldClient.main(HelloWorldClient.java:13)
Caused by: org.hibernate.HibernateException: Could not parse configuration: hibernate.cfg.xml
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2163)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2075)
at util.HibernateUtil.buildSessionFactory(HibernateUtil.java:18)
... 2 more
Caused by: org.dom4j.DocumentException: Error on line 2 of document : The processing instruction target matching "[xX][mM][lL]" is not allowed. Nested exception: The processing instruction target matching "[xX][mM][lL]" is not allowed.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2155)
... 4 more
:run FAILED
:run (Thread[Daemon worker Thread 15,5,main]) completed. Took 0.617 secs.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':run'.
> Process 'command 'C:\Program Files\Java\jdk1.8.0_65\bin\java.exe'' finished with non-zero exit value 1
* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.
BUILD FAILED
Runner Class:
package client;
import org.hibernate.Session;
import util.HibernateUtil;
import entity.Message;
public class HelloWorldClient {
public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Message message = new Message( "Hello World with Hibernate & JPA Annotations" );
session.save(message);
session.getTransaction().commit();
session.close();
}
}
Edit: Error seen when hovering over session-factory tag :
Can you check with the below CFG file which I have used and make sure the CFG file will present under the SRC directory. If you are keeping in another directory, make sure you are passing the path while getting configuration instance.
<?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">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver </property>
<property name="hibernate.connection.url"> jdbc:mysql://localhost:3306/hibernatex </property>
<property name="hibernate.connection.username"> root </property>
<property name="hibernate.connection.password"> root </property>
<property name="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </property>
<mapping resource="com/ora/hibernate/examples/Employee.hbm.xml"
package="com.ora.hibernate.examples" />
</session-factory>
</hibernate-configuration>
这篇关于Hibernate:无法解析配置:hibernate.cfg.xml?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!