你的add_product方法怎么弄得?

解决方案 »

  1.   

    FlyPig1983(飞天猪) :我看过你以前发的帖子,我跟你做的不太一样,我是直接在jsp页面里调用的sessionbean,我把整个购物车就做成了一个sessionbean,这样在用户点击购买的时候就可以一一对应了,方便起见我把sessionbean的实现部分也拿上来吧,给我解决一下啊,万分感谢!代码如下:
    package music_online;import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
    import javax.ejb.CreateException;
    import java.util.Vector;
    import music_javabean.product;public class Cart_sessionBean
        implements SessionBean {
      SessionContext sessionContext;
      String user_id;
      Vector product_list=new Vector();
      public void ejbCreate(String userid) throws CreateException {
        this.user_id=userid;
      }  public void ejbRemove() {
      }  public void ejbActivate() {
      }  public void ejbPassivate() {
      }  public void setSessionContext(SessionContext sessionContext) {
        this.sessionContext = sessionContext;
      }  public Vector getProduct_list() {
        return product_list;
      }  public String getUser_id() {
        return user_id;
      }  public boolean add_product(product one) {
        if(product_list.contains(one))
          return false;
        product_list.addElement(one);
        if(product_list.contains(one))
          return true;
        else
          return false;
      }  public boolean delete_product(product one) {
        if(product_list.contains(one))
        {
          product_list.removeElement(one);
          return true;
        }
        else
          return false;
      }  public void make_form() {
      }  public void clear_cart() {
      }}
      

  2.   

    你试试把product类的 
    private void writeObject(ObjectOutputStream oos) throws IOException {
        oos.defaultWriteObject();
      }
      private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException {
        ois.defaultReadObject();
      }
    这两个方法去掉试试。
      

  3.   

    我去掉过,还是不行啊,其实那个product类传递到页面并没有出错,甚至我还打印出了信息,主要就是在添加到cart_session中时出的错误,不知道怎么解决!
      

  4.   


    cart_session.add_product(product);这句是不是应该是这样:cart_session.add_product(new_product);
      

  5.   

    谢谢楼上的提醒,那是笔误,真正的代码跟你说的一样,是cart_session.add_product(new_product);可是这个问题还是没有解决啊,高人们啊,救命喽。
      

  6.   

    ---我去掉过,还是不行啊,其实那个product类传递到页面并没有出错,甚至我还打印出了信息,主要就是在添加到cart_session中时出的错误,不知道怎么解决!你打印出了信息是在串行化之前打印的,真正的串行化是在把product对象作为远程方法调用的参数时发生的。所以我觉得就是你的串行化方法有问题,不如你自己来完成串行化。
      

  7.   

    我想问一下,贴主为什么在这里得Handle来调用
    Cart_session cart_session=(Cart_session)javax.rmi..PortableRemoteObject.narrow(cart_handle.getEJBObject(),Cart_session.class);用传统方式调可以吗?
      

  8.   

    之前我试过传递字符串,可以的。但是变为自己定义的类对象就不可以了,出错信息就是上面的那个了,(是反序列化失败)。我不能只用字符串的,因为我还得保存很多信息啊,包括产品名,产品数量、价格等等,所以我就自己定义了一个实现了序列化的类。
    至于用调用Handle的方法来取,是因为每个用户都有自己的购物车(cart_session),所以要维护它的状态就得保证得到的是用户自己的那个购物车,别的方法我不知道,还请明示啊,楼上所说的传统方式调用是指用cart_sessionhome的find方法查找,然后调用吗?但是我不能每次调用的时候都生成一个新的会话bean吧?
      

  9.   

    To goober88(花生):我都试过N次了,还是不行啊,还有没有别的方法啊?一定要用sessionbean做啊,要不就不是ejb的了,我的课题就是ejb啊,大家多关照啊