2013-07-20 3 views
0

Я получаю ошибку belo при развертывании EAR (пример главы 8 - EJB 3 в действии) в glassfish4. Я ничего не нашел в этой ошибке. Пожалуйста, помогите мне решить эту ошибку.EclipseLink Ожидание поиска объекта/массива в стеке

SEVERE: Exception while deploying the app [chapter8-ear] : Exception [EclipseLink-28019] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.EntityManagerSetupException 
Exception Description: Deployment of PersistenceUnit [actionBazaar] failed. Close all factories for this PersistenceUnit. 
Internal Exception: java.lang.VerifyError: (class: actionbazaar/persistence/BillingInfo, method: setBillingId signature: (Ljava/lang/Long;)V) Expecting to find object/array on stack 

Вот определение класса BillingInfo.

@Entity 
@Table(name = "BILLING_DETAILS") 
public class BillingInfo implements java.io.Serializable { 

    protected long billingId; 

    protected String accountNumber; 

    protected String expiryDate; 

    protected String secretCode; 

    protected Address address; 


    public BillingInfo() { 
    } 


    @SequenceGenerator(name = "BILLING_SEQ_GEN", sequenceName = "BILLING_SEQUENCE", initialValue = 1, allocationSize = 1) 
    @Id 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "BILLING_SEQ_GEN") 
    @Column(name = "BILLING_ID") 
    public Long getBillingId() { 
     return this.billingId; 
    } 


    @Column(name = "ACCOUNT_NO") 
    public String getAccountNumber() { 
     return accountNumber; 
    } 


    @Column(name = "EXPIRY_DATE") 
    public String getExpiryDate() { 
     return expiryDate; 
    } 


    @Column(name = "SECRET_CODE") 
    public String getSecretCode() { 
     return secretCode; 
    } 


    @Embedded 
    @AttributeOverrides({ 
      @AttributeOverride(name = "state", column = @Column(name = "STATE_CD")), 
      @AttributeOverride(name = "zipCode", column = @Column(name = "ZIP_CD")) }) 
    public Address getAddress() { 
     return address; 
    } 


    public void setBillingId(Long billingId) { 
     this.billingId = billingId; 
    } 


    public void setAccountNumber(String accountNumber) { 
     this.accountNumber = accountNumber; 
    } 


    public void setExpiryDate(String expiryDate) { 
     this.expiryDate = expiryDate; 
    } 


    public void setSecretCode(String secretCode) { 
     this.secretCode = secretCode; 
    } 


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

Я подозреваю, что ошибка вызвана тем, что поле 'billingId' имеет тип' long' вместо 'Long'. –

+0

Спасибо @JBNizet. что решило проблему. –

+0

Проводка ответа, чтобы отметить его как ответ. –

ответ

1

ошибка вызвана тем, что ваш billingId поле имеет тип long вместо Long.