0

First, let me list the things I have used:

  • Eclipse JEE version 2021-03
  • Apache Tomcat Server 9
  • Hibernate ORM version 5.2.18.Final
  • PostgreSQL 14
  • Java 8
  • Some driver I have used: the required in lib of Hibernate ORM, postgresql-42.2.22.jar, jaxb-api-1.0.jar

Second is my code: In the main class, I use it to run the application I let the name of class is CreateStudentDemo in the phucldh.Demo package in the src folder

public static void main(String[] args) {

// create session factory
SessionFactory factory  = new Configuration().configure("hibernate.cfg.xml").addAnnotatedClass(Student.class).buildSessionFactory();
    
// create session
Session session = factory.getCurrentSession();
    
try {
    // create a student object
    Student tempStudent = new Student("Le", "Phuc", "phucldh.work@gmail.com");

    // start a transaction
    session.beginTransaction();
        
    // save the student object
    session.save(tempStudent);
        
    // commit transaction
    session.getTransaction().commit();
} catch (Exception e) {
    System.out.println("Create student demo error: " + e.getMessage());
} finally {
    factory.close();
}

}

And to connect to PostgreSQL I have a configuration file hibernate.cfg.xml in the src folder and the content of this file:

<session-factory>

    <!-- JDBC Database connection settings -->
    <property name="connection.driver_class">org.postgresql.Driver</property>
    <property name="connection.url">jdbc:postgresql://localhost:5432/HibernateLearn</property>
    <property name="connection.username">postgres</property>
    <property name="connection.password">********</property>

    <!-- JDBC connection pool settings ... using built-in test pool -->
    <property name="connection.pool_size">1</property>

    <!-- Select our SQL dialect -->
    <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
    
    <!-- Set the current session context -->
    <property name="current_session_context_class">thread</property>
    
    <!-- Disable the second-level cache  -->
    <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

    <!-- Echo the SQL to stdout -->
    <property name="show_sql">true</property>
    
    <!-- Drop and re-create the database schema on startup -->
    <property name="hbm2ddl.auto">create</property>
    
</session-factory>

That all I have done but when I running I have a problem:

INFO: HHH000206: hibernate.properties not found

Exception in thread "main" java.lang.NoSuchMethodError: 'javax.xml.bind.JAXBContext javax.xml.bind.JAXBContext.newInstance(java.lang.Class[])' at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:122) at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:65) at org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlResource(ConfigLoader.java:57) at org.hibernate.boot.registry.StandardServiceRegistryBuilder.configure(StandardServiceRegistryBuilder.java:163) at org.hibernate.cfg.Configuration.configure(Configuration.java:258) at phucldh.Demo.CreateStudentDemo.main(CreateStudentDemo.java:15)

And I see that line 15 of CreateStudentDemo.java is the line about

SessionFactory factory = new Configuration().configure("hibernate.cfg.xml").addAnnotatedClass(Student.class).buildSessionFactory();

So I hope that anybody can help me find what I have wrong. Thank everybody very much. Hope all have a nice day.

  • Does this answer your question? [Hibernate Session Factory javax/xml/bind/JAXBException error](https://stackoverflow.com/questions/46710409/hibernate-session-factory-javax-xml-bind-jaxbexception-error) – Yserbius Jun 21 '21 at 03:37
  • First, thank you for your reply. Second, this is the question I want to ask to fix it – Le Phuc Jun 21 '21 at 04:19
  • 1
    Hi try checking the link @Yserbius suggested. it may help you. – ThivankaW Jun 21 '21 at 05:29

0 Answers0