2009-11-14 33 views
0

在Weblogic 10.3中,部署了包含下面的EJB和持久性文件的JAR。但Weblogic將它部署爲類型「庫」而不是「EJB」,這不是我想要的。weblogic 10.3:EJB JAR被部署爲「庫」而不是「EJB」

package com.sajee; 
import javax.persistence.*; 

@Entity 
@Table(name="REGISTRAR") 

public class Registrar implements java.io.Serializable 
{ 
    private int courseId, registered; 
    public Registrar () { } 

    @Id 
    @Column(name="courseId") 
    public int getCourseId() { return courseId; } 
    public void setCourseId(int pk) { courseId = pk; } 

    @Column(name="number_students_registered") 
    public int getRegistered() { return registered; } 
    public void setRegistered(int reg) {registered = reg; } 

}

<persistence> 
<persistence-unit name="SRS" transaction-type="JTA"> 
    <jta-data-source>myDataSource</jta-data-source> 
    <non-jta-data-source>myDataSource</non-jta-data-source> 
    <properties> 
     <property name="openjpa.jdbc.DBDictionary" value="derby" /> 
    </properties> 
</persistence-unit> 
</persistence> 

什麼我做錯了任何想法?我將如何解決這個問題?

回答

1

上面的類不是真正的EJB,也不是EJB註釋或描述符。它與EJB 2.x中的實體Bean不同。

您可以使用無狀態EJB來管理具有無狀態註釋或XML描述符的JPA實體。

+0

我是在假設註釋是足夠的。我還需要添加到上面的類中以使其成爲EJB 3實體bean? – Sajee 2009-11-14 23:16:21

+0

在EJB 3中沒有等同於EJB 2.X的實體Bean。如果您想擁有一個EJB,您可以創建一個無狀態的bean來管理JPA實體,如前所述,使用@Stateless註釋,它會表現得像一個沒有接口的DAO,除非你想指定它... – anonymous 2009-11-15 09:03:44

+0

謝謝。我看到我出錯的地方。我期望Weblogic管理控制檯標記一個包含類型爲「EJB」的實體的JAR,但不包含它。我錯誤地認爲我的代碼有問題。 感謝您的澄清。 – Sajee 2009-11-15 15:43:12