0

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

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

到目前为止,我在 Eclipse 中做了 3 个项目:

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

动态 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 项目 > 模型。员工:

@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;
    }

        [...]
}

但是当我尝试添加员工时,我得到一个 ClassNotFoundException for model.Employee.

类路径似乎不错。我错过了什么吗?

4

1 回答 1

1

您需要在 EJB 项目中添加 JPA 项目作为依赖项,并在Properties -> Java EE Module Dependencies.

祝你好运

于 2013-10-07T09:20:54.473 回答