Hibernate 4 javax / transaction / SystemException错误 [英] Hibernate 4 javax/transaction/SystemException error

查看:112
本文介绍了Hibernate 4 javax / transaction / SystemException错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图让Hibernate 4.3与我的MySQL数据库一起工作。我已经能够在Eclipse中使用Hibernate Code Generation工具,并且我也可以使用Hibernate Configurations工具连接到数据库。



然而,当我尝试运行代码在我的Main类中查询数据库我得到以下错误:

 线程main中的异常java.lang.NoClassDefFoundError :在java.lang.Class.forName0中的javax / transaction / SystemException 
(本地方法)$ b在java.lang.Class.forName中的$ b(未知源)$ b $在org.jboss.logging.Logger .getMessageLogger(Logger.java:2248)
at org.jboss.logging.Logger.getMessageLogger(Logger.java:2214)
at org.hibernate.cfg.Configuration。< clinit>(Configuration。 java:184)
在be.comp.permanenties.HibernateUtil。< clinit>(HibernateUtil.java:15)
在be.comp.dao.balie.ZitdagenDAOMySQL.findByMaCode(ZitdagenDAOMySQL.java:31 )
在be.comp.permanenties.Main.main(Main.java:19)
导致:java.lang.ClassNotFoundException:javax.transaction.SystemEx ception
在java.net.URLClassLoader $ 1.run(未知源)
在java.net.URLClassLoader $ 1.run(未知源)
在java.security.AccessController.doPrivileged(Native方法)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher $ AppClassLoader.loadClass(Unknown Source )
at java.lang.ClassLoader.loadClass(Unknown Source)
... 8 more

我的HibernateUtil.java文件中的代码是:

  import org.apache.commons.lang3.SystemUtils; 
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
导入org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

public class HibernateUtil {

private static final SessionFactory sessionFactoryBalie = new Configuration()。configure(mysql_balie.cfg.xml)。buildSessionFactory();

public static SessionFactory getSessionFactoryBalie(){
return sessionFactoryBalie;
}

}

mysq_balie.cfg.xml文件看起来像:

 <?xml version =1.0encoding =UTF-8?> 
<!DOCTYPE hibernate-configuration PUBLIC
- // Hibernate / Hibernate配置DTD 3.0 // EN
http://www.hibernate.org/dtd/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://127.0.0.1:3306 / balie?autoReconnect = true& amp; amp; amp; useUnicode = true& amp; amp; amp; amp; amp; ISO-8859-1< /性>
< property name =hibernate.connection.username>用户名< / property>
< property name =hibernate.connection.password>密码< / property>
< property name =hibernate.default_catalog> db< / property>

< property name =hibernate.dialect> org.hibernate.dialect.MySQL5Dialect< / property>

<! - JDBC连接池(使用内置) - >
< property name =hibernate.connection.pool_size> 1< / property>

<! - 启用Hibernate的自动会话上下文管理 - >
< property name =hibernate.current_session_context_class>线程< / property>
<! - < property name =hibernate.current_session_context_class> org.hibernate.context.internal.ThreadLocalSessionContext< / property> - >

<! - 禁用二级缓存 - >
< property name =hibernate.cache.provider_class> org.hibernate.cache.NoCacheProvider< / property>

<! - 将所有执行的SQL回复到stdout - >
< property name =hibernate.show_sql> true< / property>

<! - 在启动时删除并重新创建数据库模式 - >
< property name =hibernate.hbm2ddl.auto>更新< / property>

<! - XML映射文件列表 - >
< mapping resource =be / comp / model / balie / Zitdagen.hbm.xml/>
< / session-factory>



我无法弄清楚错误可能在哪里。欢迎所有帮助。

>

 < dependency> 
< groupId> javax.transaction< / groupId>
< artifactId> jta< / artifactId>
< version> 1.1< / version>
< /依赖关系>

或从Maven存储库下载并添加到您的CLASSPATH中


I am trying to get Hibernate 4.3 to work with my MySQL database. I am already able to use the Hibernate Code Generation tool in Eclipse and I am also able to connect to the database using the Hibernate Configurations tool.

However when I try to run code in my Main class that queries the database I get the following error:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/SystemException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.jboss.logging.Logger.getMessageLogger(Logger.java:2248)
at org.jboss.logging.Logger.getMessageLogger(Logger.java:2214)
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:184)
at be.comp.permanenties.HibernateUtil.<clinit>(HibernateUtil.java:15)
at be.comp.dao.balie.ZitdagenDAOMySQL.findByMaCode(ZitdagenDAOMySQL.java:31)
at be.comp.permanenties.Main.main(Main.java:19)
Caused by: java.lang.ClassNotFoundException: javax.transaction.SystemException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 8 more

The code in my HibernateUtil.java file is:

import org.apache.commons.lang3.SystemUtils;
import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

public class HibernateUtil {

private static final SessionFactory sessionFactoryBalie = new Configuration().configure("mysql_balie.cfg.xml").buildSessionFactory();

public static SessionFactory getSessionFactoryBalie() {
    return sessionFactoryBalie;
}

}

The mysq_balie.cfg.xml file looks like:

<?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>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

    <!-- Development -->

    <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/balie?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=iso-8859-1</property>
    <property name="hibernate.connection.username">username</property>
    <property name="hibernate.connection.password">password</property>
    <property name="hibernate.default_catalog">db</property>

    <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>

    <!-- JDBC connection pool (use the built-in) -->
    <property name="hibernate.connection.pool_size">1</property>

    <!-- Enable Hibernate's automatic session context management -->
    <property name="hibernate.current_session_context_class">thread</property>
    <!-- <property name="hibernate.current_session_context_class">org.hibernate.context.internal.ThreadLocalSessionContext</property>-->

    <!-- Disable the second-level cache -->
    <property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

    <!-- Echo all executed SQL to stdout -->
    <property name="hibernate.show_sql">true</property>

    <!-- Drop and re-create the database schema on startup -->
    <property name="hibernate.hbm2ddl.auto">update</property>

    <!-- List of XML mapping files -->
    <mapping resource="be/comp/model/balie/Zitdagen.hbm.xml"/>
</session-factory>

I am unable to figure out where the error might be. All help is welcome. Thanks.

解决方案

you are missing jta.jar
with maven add this dep:

  <dependency>
      <groupId>javax.transaction</groupId>
      <artifactId>jta</artifactId>
      <version>1.1</version>
  </dependency>

or download from maven repository and add to your CLASSPATH

这篇关于Hibernate 4 javax / transaction / SystemException错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆