不知道你的EntityBean是怎么写的,是否符合EJB2.0规范?
特别注意在你的ejbpk中,你是如何写的?

解决方案 »

  1.   

    我的源代码
    package bookshoptest;import javax.ejb.*;
    import java.util.*;public interface Book extends javax.ejb.EJBLocalObject {
      public Integer getBookid();
      public void setBookname(String bookname);
      public String getBookname();
      public void setIsbn(String isbn);
      public String getIsbn();
      public void setAuthor(String author);
      public String getAuthor();
      public void setPublish(String publish);
      public String getPublish();
      public void setPrice(Float price);
      public Float getPrice();
    }
    package bookshoptest;import javax.ejb.*;abstract public class BookBean implements EntityBean {
      EntityContext entityContext;
      public java.lang.Integer ejbCreate(java.lang.Integer bookid) throws CreateException {
        /**@todo Complete this method*/
        setBookid(bookid);
        return null;
      }
      public void ejbPostCreate(java.lang.Integer bookid) throws CreateException {
        /**@todo Complete this method*/
      }
      public void ejbRemove() throws RemoveException {
        /**@todo Complete this method*/
      }
      public void ejbLoad() {
        /**@todo Complete this method*/
      }
      public void ejbStore() {
        /**@todo Complete this method*/
      }
      public void ejbActivate() {
        /**@todo Complete this method*/
      }
      public void ejbPassivate() {
        /**@todo Complete this method*/
      }
      public void unsetEntityContext() {
        this.entityContext = null;
      }
      public void setEntityContext(EntityContext entityContext) {
        this.entityContext = entityContext;
      }
      public abstract void setBookid(java.lang.Integer bookid);
      public abstract void setBookname(java.lang.String bookname);
      public abstract void setIsbn(java.lang.String isbn);
      public abstract void setAuthor(java.lang.String author);
      public abstract void setPublish(java.lang.String publish);
      public abstract void setPrice(java.lang.Float price);
      public abstract java.lang.Integer getBookid();
      public abstract java.lang.String getBookname();
      public abstract java.lang.String getIsbn();
      public abstract java.lang.String getAuthor();
      public abstract java.lang.String getPublish();
      public abstract java.lang.Float getPrice();
    }package bookshoptest;import javax.ejb.*;
    import java.util.*;public interface BookHome extends javax.ejb.EJBLocalHome {
      public Book create(Integer bookid) throws CreateException;
      public Book findByISBN(String isbn) throws FinderException;
      public Collection findAllBook() throws FinderException;
      public Book findByPrimaryKey(Integer bookid) throws FinderException;
    }
      

  2.   


    /////////////////////////////////////////////////////////////////////////////////////////
    package bookshoptest;import javax.ejb.*;
    import java.util.*;public interface OrderInfo extends javax.ejb.EJBLocalObject {
      public String getOrderid();
      public void setCustName(String custName);
      public String getCustName();
      public void setAddress(String address);
      public String getAddress();
      public void setEMail(String eMail);
      public String getEMail();
      public void setBooklist(String booklist);
      public String getBooklist();
      public void setPrice(Float price);
      public Float getPrice();
    }
    package bookshoptest;import javax.ejb.*;abstract public class OrderInfoBean implements EntityBean {
      EntityContext entityContext;
      public java.lang.String ejbCreate(java.lang.String orderid) throws CreateException {
        setOrderid(orderid);
        return null;
      }
      public void ejbPostCreate(java.lang.String orderid) throws CreateException {
        /**@todo Complete this method*/
      }
      public void ejbRemove() throws RemoveException {
        /**@todo Complete this method*/
      }
      public abstract void setOrderid(java.lang.String orderid);
      public abstract void setCustName(java.lang.String custName);
      public abstract void setAddress(java.lang.String address);
      public abstract void setEMail(java.lang.String eMail);
      public abstract void setBooklist(java.lang.String booklist);
      public abstract void setPrice(java.lang.Float price);
      public abstract java.lang.String getOrderid();
      public abstract java.lang.String getCustName();
      public abstract java.lang.String getAddress();
      public abstract java.lang.String getEMail();
      public abstract java.lang.String getBooklist();
      public abstract java.lang.Float getPrice();
      public void ejbLoad() {
        /**@todo Complete this method*/
      }
      public void ejbStore() {
        /**@todo Complete this method*/
      }
      public void ejbActivate() {
        /**@todo Complete this method*/
      }
      public void ejbPassivate() {
        /**@todo Complete this method*/
      }
      public void unsetEntityContext() {
        this.entityContext = null;
      }
      public void setEntityContext(EntityContext entityContext) {
        this.entityContext = entityContext;
      }
    }package bookshoptest;import javax.ejb.*;
    import java.util.*;public interface OrderInfoHome extends javax.ejb.EJBLocalHome {
      public OrderInfo create(String orderid) throws CreateException;
      public OrderInfo findByPrimaryKey(String orderid) throws FinderException;
    }
      

  3.   


    /////////////////////////////////////////////////////////////////////////////////////////
    package bookshoptest;import javax.ejb.*;
    import java.util.*;
    import java.rmi.*;public interface facade extends javax.ejb.EJBObject {
      public String getBookInfo(String bookid) throws RemoteException;
      public java.util.Collection getAllBook() throws RemoteException;
    }package bookshoptest;import javax.jms.*;
    import java.io.*;
    import java.util.*;
    import javax.ejb.*;
    import javax.naming.*;
    import java.util.Properties;
    import javax.rmi.PortableRemoteObject;
    public class facadeBean implements SessionBean {
      SessionContext sessionContext;
      public Book book=null;
      private BookHome bookHome=null;  public void ejbCreate() throws CreateException {
        try{
       Context context = new InitialContext();
       //look up jndi name
       Object ref = context.lookup("java:/comp/env/book");
       //look up jndi name and cast to Home interface
       bookHome= (BookHome) ref;
       }catch(Exception e){e.printStackTrace();}
        /**@todo Complete this method*/
      }
      public void ejbRemove() {
        /**@todo Complete this method*/
      }
      public void ejbActivate() {
        try{
         Context context = new InitialContext();
         //look up jndi name
         Object ref = context.lookup("java:/comp/env/book");
         //look up jndi name and cast to Home interface
         bookHome= (BookHome) ref;
         }catch(Exception e){e.printStackTrace();}
        /**@todo Complete this method*/
      }
      public void ejbPassivate() {
        /**@todo Complete this method*/
      }
      public void setSessionContext(SessionContext sessionContext) {
        this.sessionContext = sessionContext;
      }
      public String getBookInfo(String bookid) {
        String strBook=null;
        try{
        book=bookHome.findByPrimaryKey(new Integer(bookid));
        strBook ="the bookname is "+ book.getBookname() +" ISBN is "+book.getIsbn()+" author is "+book.getAuthor()+ " publish is "+book.getPublish();
      }catch(Exception e){}
        return strBook;
      /**@todo Complete this method*/  }
      public java.util.Collection getAllBook() {
        Collection result=new Vector();
      try{
          Collection c1 = bookHome.findAllBook();
          System.out.println(c1.size());
          Object o1[]=c1.toArray();
         for(int i=0;i<o1.length;i++)
         {
          book=(Book)o1[i];
          System.out.println(book.getBookid()+"  "+book.getBookname()+"  "+book.getIsbn()+"  "+book.getAuthor()+"  "+book.getPublish()+"  "+book.getPrice());
          result.add(new BookItem(book.getBookid(),book.getBookname(),book.getIsbn(),book.getAuthor(),book.getPublish(),book.getPrice().floatValue()));
         }
       }catch(Exception e){e.printStackTrace();}
       return result;    /**@todo Complete this method*/  }
    }
    package bookshoptest;import javax.ejb.*;
    import java.util.*;
    import java.rmi.*;public interface facadeHome extends javax.ejb.EJBHome {
      public facade create() throws CreateException, RemoteException;
    }
    工具:jb9+wl7+SqlServer2000 使用微软的SQLServer2000 JDBC驱动我写了3个bean,都在1个EJB Module中,其中2个实体bean(cmp): Book,OrdrInfo;
                                           1个会话bean:facade;通过facade bean引用2个实体bean(cmp).