当前位置: 首页 > 面试题库 >

Hibernate 4 javax / transaction / SystemException错误

余铭晨
2023-03-14
问题内容

我正在尝试使Hibernate
4.3与我的MySQL数据库一起使用。我已经可以在Eclipse中使用Hibernate代码生成工具,也可以使用Hibernate
Configurations工具连接到数据库。

但是,当我尝试在查询数据库的Main类中运行代码时,出现以下错误:

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

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

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;
}

}

mysq_balie.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>
    <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>

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


问题答案:

您缺少
与maven的jta.jar 并添加以下内容:

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

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



 类似资料:
  • Spring Transactions Spring最可爱的地方之一就是AOP事务控制了,不多说。在SpringSide里,事务坐在Service层,而且因为Service层的方法里,只读的事务居多,因此在Class Level上默认设置@Transactional(readOnly = true),而在save,delete方法再注释@Transactional(readOnly = false

  • 我很难理解如何决定使用Spring@Transaction注释什么方法。 在一次转账中,如果扣款失败,显然即使存款没有失败,也不应该继续存款。 在这五种方法(转移、扣除、存款、加载、保存)中,哪些方法应该用@transactional注释,为什么?

  • 定义用于发送事务和内联消息的API Transaction C API 定义用于发送事务的API Transaction CPP API 类型安全的Trasaction C API的C++封装 详细描述 A EOS.IO事务具有以下抽象结构: struct transaction { Name scope[]; Name readScope[]; message messages[

  • 数据库事务是一系列被视为单个工作单元的操作。 这些操作应该完全完成或根本不起作用。 事务管理是面向RDBMS的企业应用程序的重要组成部分,可确保数据的完整性和一致性。 交易的概念可以用以下描述为ACID四个关键属性来描述 - Atomicity - 事务应被视为单个操作单元,这意味着整个操作序列成功或不成功。 Consistency - 这表示数据库的参照完整性,表中的唯一主键等的一致性。 Iso

  • Commons Transaction 旨在提供一个轻量级、标准化、高效的 Java 事务多线程编程的工具包,实现了多级锁、事务集合和事务级文件访问。

  • Transaction报表 主要功能 监控一段代码运行情况:运行次数、QPS、错误次数、失败率、响应时间统计(平均影响时间、Tp分位值)等等。 应用启动后默认会打点的部分: 打点 来源组件 描述 System cat-client 上报监控数据的打点信息 URL 需要接入cat-filter URL访问的打点信息 报表介绍 第一级分类(Type)统计界面 Type统计界面展示了一个Transact