首页 > 解决方案 > org.hibernate.service.ServiceRegistry 的 classnotfound 错误

问题描述

在这个web项目中,出现java.lang.ClassNotFoundException: org.hibernate.service.ServiceRegistry的错误

搜索后有一个解决方案是在 POM.xml 文件中添加休眠依赖项,但它不是 maven 项目,所以我没有 POM 文件......所以有没有其他方法可以在 web.xml 中添加依赖项或 hibernate.cfg.xml 文件或与此不同的解决方案。

package DAO;

import java.util.ArrayList;

import javax.transaction.Transaction;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.GamesDen.SessionFact;

import Bean.Customer;

public class CustomerOperations implements CustomerDeclarations {
    SessionFactory sf = SessionFact.getSessionFact();
    Session ss;
    Transaction ts;

    @Override
    public boolean insertCustomer(Customer cr) {
        // TODO Auto-generated method stub

        ss = sf.openSession();
        ss.beginTransaction();
        cr.setCustomer_id(101);
        ss.save(cr);
        ss.getTransaction().commit();
        ss.close();
        return true;
    }

    @Override
    public boolean deleteCustomer(int id) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean alterCustomer(int id) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public ArrayList showAllCustomer() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public ArrayList searchByUsername(String username) {
        // TODO Auto-generated method stub
        return null;
    }

}

客户运营

package DAO;

import java.util.ArrayList;

import javax.transaction.Transaction;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import org.hibernate.Session;

import Bean.Customer;

public class CustomerOperations implements
        CustomerDeclarations {
    SessionFactory sf = SessionFact.getSessionFact();
    Session ss;
    Transaction ts;

    @Override
    public boolean insertCustomer(Customer cr) {
        // TODO Auto-generated method stub

        ss = sf.openSession();
        ss.beginTransaction();
        cr.setCustomer_id(101);
        ss.save(cr);
        ss.getTransaction().commit();
        ss.close();
        return true;
    }

    @Override
    public boolean deleteCustomer(int id) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean alterCustomer(int id) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public ArrayList showAllCustomer() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public ArrayList searchByUsername(String username) {
        // TODO Auto-generated method stub
        return null;
    }

}

   package Bean;

           import javax.persistence.*;

@Entity
public class Customer {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int Customer_id;
    @Column(unique = true, nullable = false)
    private String username;
    @Column(unique = true, nullable = false)
    private String first_name;
    private String last_name;

    private Address address;
    @Column(unique = true, nullable = false)
    private String emailid;
    @Column(unique = true, nullable = false)
    private String PASSWORD;


    @Override
    public String toString() {
        return "Customer [Customer_id=" + Customer_id + ", 
        username = " + username + ", first_name = " + first_name
                + ", last_name=" + last_name + ", 
        address = "+address+", emailid = " + emailid + ", PASSWORD = " + 
        PASSWORD + "]";
    }

    public Customer(int customer_id, String username, String
            first_name, String last_name, Address adr, String emailid,
                    String pASSWORD) {
        super();
        this.username = username;
        this.first_name = first_name;
        this.last_name = last_name;
        this.address = adr;
        this.emailid = emailid;
        this.PASSWORD = pASSWORD;
    }


    public int getCustomer_id() {
        return Customer_id;
    }

    public void setCustomer_id(int customer_id) {
        Customer_id = customer_id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getFirst_name() {
        return first_name;
    }

    public void setFirst_name(String first_name) {
        this.first_name = first_name;
    }

    public String getLast_name() {
        return last_name;
    }

    public void setLast_name(String last_name) {
        this.last_name = last_name;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public String getEmailid() {
        return emailid;
    }

    public void setEmailid(String emailid) {
        this.emailid = emailid;
    }

    public String getPASSWORD() {
        return PASSWORD;
    }

    public void setPASSWORD(String pASSWORD) {
        PASSWORD = pASSWORD;
    }


}

对于此类未找到错误是否有任何不同的解决方案,而不是在 pom 文件中添加休眠核心依赖项,因为它不是 maven 项目。

标签: javaspringhibernatemavenservlets

解决方案


不,没有hibernate-core 依赖项(在您的类路径中),您不能使用 hibernate(在任何版本中)。

如果你不使用maven,没问题:

  1. 您可以下载完整的“hibernate-orm”发行版(作为来自hibernate (5.4) 发布站点的 .zip 文件):http: //sourceforge.net/projects/hibernate/files/hibernate-orm/5.4.1.Final/hibernate -release-5.4.1.Final.zip/下载

  2. 您可以下载和使用所有 maven 工件,而无需实际使用 maven,因为 maven.central(和其他公共 maven 存储库)通过 html 提供公共访问:从 central.maven.org 下载 hibernate-core-5.4.1.Final.jar


推荐阅读