【问题标题】:Hibernate EJB architecture - Model ClassNotFoundExceptionHibernate EJB 架构 - 模型 ClassNotFoundException
【发布时间】:2013-10-07 17:26:08
【问题描述】:

我正在尝试了解使用 Struts2、Hibernate 和 EJB 的 JavaEE 架构的基本架构。

我有一个简单的应用程序,可以添加员工并列出他们。

到目前为止,我已经在 Eclipse 中制作了 3 个项目:

  • JPA 项目,其中包含链接到数据库的我的模型
  • 处理服务层的 EJB 项目
  • Struts 2 的动态 Web 项目

动态网络项目>controller.EmployeeAction.java:

import local.EmployeeService;
import model.Employee;

public class EmployeeAction extends ActionSupport {    
    private Employee employee;
    private Collection<Employee> employeeList;

    @EJB
    private EmployeeService employeeManager;

    public String execute() {
        this.employeeList = employeeManager.findAll();
        return SUCCESS;
    }

    public String add() {
        employeeManager.addItem(this.employee);
        this.employeeList = employeeManager.findAll();
        return SUCCESS;
    }

    [...]
}

EJB 项目 > local.EmployeeService.java:

import model.Employee;

@Stateless
public class EmployeeService {

    @PersistenceContext
    private EntityManager em;

     public void addItem(Employee i) {
         em.persist(i);
     }

     public Collection<Employee> findAll() {
         Query query = em.createQuery("SELECT e FROM Employee e");
         return (Collection<Employee>) query.getResultList();
     }
}

JPA 项目> model.Employee:

@Entity
@Table(name="\"Employee\"")
@NamedQuery(name="Employee.findAll", query="SELECT e FROM Employee e")
public class Employee implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(unique=true, nullable=false)
    private Integer idemployee;

    @Column(length=255)
    private String password;

    @Column(nullable=false, length=255)
    private String username;

    public Employee() {
    }

    public Integer getIdemployee() {
        return this.idemployee;
    }

    public void setIdemployee(Integer idemployee) {
        this.idemployee = idemployee;
    }

        [...]
}

但是当我尝试添加员工时,我收到 model.Employee 的 ClassNotFoundException。

类路径看起来不错。我错过了什么吗?

【问题讨论】:

    标签: java eclipse hibernate struts2 ejb


    【解决方案1】:

    您需要将您的 JPA 项目作为依赖项添加到您的 EJB 项目中,并在 Properties -&gt; Java EE Module Dependencies 中标记为 Web 库依赖项。

    祝你好运

    【讨论】:

    • 谢谢,我还有另一个问题,但这个问题已解决。请注意,它在 Eclipse Kepler 中称为 Deployment Assembly
    猜你喜欢
    • 1970-01-01
    • 2013-07-07
    • 2012-11-29
    • 2011-03-04
    • 2012-05-28
    • 2012-11-01
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多