Facing hibernate error: Caused by: java.lang.ClassNotFoundException: net.bytebuddy.NamingStrategy$SuffixingRandom$BaseNameResolver

▼魔方 西西 提交于 2020-01-03 02:35:23

问题


I am getting an error while running this code in Eclipse. I have created Student.java file:

package bean;
public class Student {
               private int id;
               private String name;
               private String email;
               private int marks;

            public int getId() {
                return id;
            }

            public void setId(int id) {
                this.id = id;
            }

            public String getName() {
                return name;
            }

            public void setName(String name) {
                this.name = name;
            }

            public String getEmail() {
                return email;
            }

            public void setEmail(String email) {
                this.email = email;
            }

            public int getMarks() {
                return marks;
            }

            public void setMarks(int marks) {
                this.marks = marks;
            }
}

I have created Student.hbm.xml file:

<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class name="bean.Student" table="student">
        <id name="id" column="sid"></id>
        <property name="name"  column="sname"></property>
        <property name="email" column="semail"></property>
        <property name="marks" column="smarks"></property>
</class>
</hibernate-mapping>

I have created hibernate.cfg.xml file:

<!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="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:wind</property>
        <property name="connection.username">localuser</property>
        <property name="connection.password">localuser</property>
        <property name="connection.poolsize">5</property>

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

        <mapping resource="resources/student.hbm.xml"/>

</session-factory>
</hibernate-configuration>

I have created client.java file:

package testclass;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import bean.Student;

public class Client {
public static void main(String[] args) {

    Student st = new Student();
    st.setId(11);
    st.setEmail("swapnilgthaware@gmail.com");
    st.setMarks(98);
    st.setName("Swapnil");  

    // Student object is transient here..
    // When it is attached to hibernate object then it will become persistent object.


    Configuration cfg = new Configuration();
    cfg.configure("resources/hibernate.cfg.xml");

    SessionFactory sf = cfg.buildSessionFactory();
    Session s =sf.openSession();

    s.save(st);

    // Student object is persisten now. Even gc() will not take away this object

    s.beginTransaction().commit();
    // Student object will goto Database side.


    s.evict(st);



    }
    }

I tried adding many jars file but I am unable see student record in my oracle database.

Full error:

Jul 17, 2018 8:11:09 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.3.2.Final}
Jul 17, 2018 8:11:09 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Exception in thread "main" java.lang.NoClassDefFoundError: net/bytebuddy/NamingStrategy$SuffixingRandom$BaseNameResolver
    at org.hibernate.cfg.Environment.buildBytecodeProvider(Environment.java:357)
    at org.hibernate.cfg.Environment.buildBytecodeProvider(Environment.java:352)
    at org.hibernate.cfg.Environment.<clinit>(Environment.java:246)
    at org.hibernate.boot.registry.StandardServiceRegistryBuilder.<init>(StandardServiceRegistryBuilder.java:78)
    at org.hibernate.boot.registry.StandardServiceRegistryBuilder.<init>(StandardServiceRegistryBuilder.java:67)
    at org.hibernate.cfg.Configuration.reset(Configuration.java:158)
    at org.hibernate.cfg.Configuration.<init>(Configuration.java:124)
    at org.hibernate.cfg.Configuration.<init>(Configuration.java:118)
    at testclass.Client.main(Client.java:21)
Caused by: java.lang.ClassNotFoundException: net.bytebuddy.NamingStrategy$SuffixingRandom$BaseNameResolver
    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)
    ... 9 more

回答1:


I have the same problem: turns out the net-buddy library file was corrupted (error during download?).

Try deleting jars in ~/.m2/repository/net/bytebuddy and rebuild the application.

Hope this helps.




回答2:


Just add the jar file: byte-buddy-1.X.XX.jar

Source: https://github.com/raphw/byte-buddy

maven: https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy/1.9.7

Only JAR binry Build: http://central.maven.org/maven2/net/bytebuddy/byte-buddy/1.9.7/byte-buddy-1.9.7.jar



来源:https://stackoverflow.com/questions/51384547/facing-hibernate-error-caused-by-java-lang-classnotfoundexception-net-bytebud

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!