2012-12-01 137 views
1

您好我正在尝试配置与MySQL的休眠。休眠配置mysql

我正在使用IntelliJ的Maven来获得我的依赖关系。

我的休眠配置文件是

<?xml version='1.0' encoding='utf-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
     "-//Hibernate/Hibernate Configuration DTD//EN" 
     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
     <property name="connection.url">jdbc:mysql://localhost:3306/test</property> 
     <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="connection.username">root</property> 
     <property name="connection.password">SYS</property> 
     <property name="dialect">org.hibernate.dialect.MySQLDialect</property> 
     <property name="transaction.factory_class">org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory</property> 
     <mapping resource="Person.hdm.xml"></mapping> 
    </session-factory> 
</hibernate-configuration> 

我有一个映射类Person.hdm.xml

<hibernate-mapping> 
    <class name="Person"> 

     <id name="FirstName"/> 

    </class> 
</hibernate-mapping> 

我得到了下面的堆栈..

222 [main] INFO org.hibernate.cfg.Configuration - HHH000221: Reading mappings from resource: hibernate.cfg.xml 
Exception in thread "main" java.lang.ExceptionInInitializerError 
    at Main.<clinit>(Main.java:24) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:169) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113) 
Caused by: java.lang.NoSuchFieldError: TRACE 
    at org.jboss.logging.Log4jLogger.translate(Log4jLogger.java:64) 
    at org.jboss.logging.Log4jLogger.isEnabled(Log4jLogger.java:39) 
    at org.jboss.logging.Logger.logv(Logger.java:1953) 
    at org.hibernate.internal.CoreMessageLogger_$logger.tracev(CoreMessageLogger_$logger.java:443) 
    at org.hibernate.cfg.EJB3DTDEntityResolver.resolveEntity(EJB3DTDEntityResolver.java:58) 
    at org.apache.xerces.util.EntityResolverWrapper.resolveEntity(Unknown Source) 
    at org.apache.xerces.impl.XMLEntityManager.resolveEntity(Unknown Source) 
    at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source) 
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) 
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) 
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) 
    at org.dom4j.io.SAXReader.read(SAXReader.java:465) 
    at org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:76) 
    at org.hibernate.cfg.Configuration.add(Configuration.java:477) 
    at org.hibernate.cfg.Configuration.add(Configuration.java:473) 
    at org.hibernate.cfg.Configuration.add(Configuration.java:646) 
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:729) 
    at Main.<clinit>(Main.java:22) 
    ... 3 more 

任何帮助将不胜感激,

谢谢, Mark

+0

使用Google搜索您的例外会带来不少结果,包括这一个 - https://community.jboss.org/thread/63422。您可能想验证您是否使用了所有库的正确版本。 – Perception

回答

0

java.lang.NoSuchFieldError:“如果应用程序试图访问或修改对象的指定字段,并且该对象不再具有该字段,则抛出该错误。

Log4jLogger看起来是罪魁祸首,我注意到它是'org.jboss.logging'..是hibernate期待不同的版本?看起来像一个环境特定的记录器(即Jboss,应用服务器),你在JBoss中运行这个?

+0

辉煌。谢谢 – user1869072