2013-10-07 58 views
0

我想了解使用Struts2,Hibernate和EJB的JavaEE體系結構的基本體系結構。Hibernate EJB體系結構 - 模型ClassNotFoundException

我有一個簡單的應用程序,添加員工並列出他們。

到目前爲止,我已經在Eclipse中取得3個項目:

  • JPA項目,該項目包含了我的模型鏈接到數據庫
  • EJB項目,該項目處理服務層
  • 動態Web項目對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。

類路徑看起來不錯。我錯過了什麼嗎?

回答

1

您需要將您的JPA proyect作爲依賴項添加到您的EJB項目中,並在Properties -> Java EE Module Dependencies中標記爲Web Library Dependency。

好運

+0

謝謝,我有另一個問題,但是這個問題已經修復。請注意,它在Eclipse Kepler中被稱爲'Deployment Assembly'。 – Arthur