你是在运行mastering EJB吧!
你的bean中的getproductID的方法名写成了getproductid。

解决方案 »

  1.   

    我的ProductBean.java如下
    感觉没问题啊package examples;
    import javax.ejb.*;
    public abstract class ProductBean implements EntityBean {
    protected EntityContext ctx; public ProductBean() {}  public abstract String getName(); public abstract void setName(String name); public abstract String getDescription(); public abstract void setDescription(String description); public abstract String getProductID(); public abstract void setProductID(String productID); public abstract double getBasePrice(); public abstract void setBasePrice(double basePrice);
        public void ejbActivate() {
    System.out.println("ejbActivate() called.");
    } public void ejbRemove() {
    System.out.println("ejbRemove() called.");
    } public void ejbPassivate() {
    System.out.println("ejbPassivate() called.");
    } public void ejbLoad() {
    System.out.println("ejbLoad() called.");
    } public void ejbStore() {
    System.out.println("ejbStore() called.");
    } public void setEntityContext(EntityContext ctx) {
    System.out.println("setEntityContext called");
    this.ctx = ctx;
    } public void unsetEntityContext() {
    System.out.println("unsetEntityContext called");
        this.ctx = null;
    } public void ejbPostCreate(String productID, String name, String description, double basePrice) {
    System.out.println("ejbPostCreate() called");
    } public ProductPK ejbCreate(String productID, String name, String description, double basePrice) 
            throws CreateException {
    System.out.println("ejbCreate() called");

    setProductID(productID);
    setName(name);
    setDescription(description);
    setBasePrice(basePrice); return new ProductPK(productID);
    }
    }