繁体   English   中英

EclipseLink期望在堆栈上找到对象/数组

[英]EclipseLink Expecting to find object/array on stack

在glassfish4中部署EAR(第8章的示例-EJB 3在操作中)时遇到了belo错误。 我没有发现太多关于此错误的信息。 请帮助我解决此错误。

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

该错误是由于您的billingId字段的类型为long而不是Long所致。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM