当前位置: 首页 > 知识库问答 >
问题:

HiberNate 4 javax/交易/系统异常错误

别旻
2023-03-14

我正在尝试让Hibernate 4.3与我的MySQL数据库一起工作。我已经能够在Eclipse中使用Hibernate代码生成工具,并且还能够使用Hibernate配置工具连接到数据库。

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

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>

我想不出错误可能在哪里。欢迎大家帮忙。谢谢

共有3个答案

茹康裕
2023-03-14

如果不使用Maven/Gradle,更简单的方法是下载整个包,而不是逐个下载jar文件。

去http://hibernate.org/orm/downloads/下载最新的库,从必需的文件夹中提取jar。

公羊安怡
2023-03-14

以上答案适用于Maven应用程序。但在普通应用程序中,只需添加一个名为jta-1.1的jar文件。罐子

--

--

傅阿苏
2023-03-14

你错过了jta。jar
使用maven添加此dep:

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

或者从maven存储库下载并添加到类路径中

 类似资料:
  • 服务异常事件 function onWorkerError(\swoole_server $server,$worker_id,$worker_pid,$exit_code); 当worker/task_worker进程发生异常后会在Manager进程内回调此函数 $worker_id是异常进程的编号 $worker_pid是异常进程的ID $exit_code退出的状态码,范围是 1 ~255

  • 问题内容: 从远程系统提交mapreduce作业时出现异常 13/10/28 18:49:52错误security.UserGroupInformation:PriviledgedActionException as:根本原因:org.apache.hadoop.mapred.InvalidInputException:输入路径不存在:file:/ F:/ Workspaces / Test /

  • 我正在阅读,从我的观点来看,我被一个矛盾弄糊涂了,特别是在

  • const DI_ERROR_HANDLER = 'DI_ERROR_HANDLER'; const DI_LOGGER_WRITER = 'DI_LOGGER_WRITER'; const DI_SESSION_HANDLER = 'DI_SESSION_HANDLER'; const CONTROLLER_MAX_DEPTH = 'CONTROLLER_MAX_DEPT

  • 问题内容: JPA规范区分系统异常和应用程序异常。我对线条的确切位置感到困惑。我的猜测: 应用程序异常是您的代码或代码所使用的库显式或隐式抛出的异常。 是否包括所有异常,运行时和已检查的异常,而不管其来源如何? 系统异常可能是持久性提供程序抛出的异常。它当然包含的所有子类。 提供程序代码引发的其他异常呢? 其他Java EE库抛出的异常又如何呢? 如果将异常包装在中,是否会有所不同? 如何使用Ap

  • Time: ~30 mins 面试之前 hr 让我准备交易策略方向的内容,但实际上根本没问过。 自我介绍,之后就是问八股 1. MySQL 的索引 (经典老八股) 2. 量化的优点 3. C++ 项目讲一下 项目中 Socket用的什么?线程用的什么? 4. C++ 用过哪些开源的网络库? 5. 介绍一下 RabbitMQ (自己根本没有用过,消息队列只用过 Kafka,也没写在简历上,还好之前看