public void init() throws ServletException {
    try{
      Context ctx = new InitialContext();
      HelloLocalHome home =(HelloLocalHome)ctx.lookup("java:comp/env/ejb/HelloLocalHome");
      hello = home.create();
    }catch(Exception e){
      e.printStackTrace();
      throw new ServletException(e.getMessage());
    }
  }  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String user = request.getParameter("user");
    if (user == null||user.trim().length()==0) {
      user = "world";
    }
    request.setAttribute("greetingStr",hello.greeting(user));
    this.getServletContext().
        getRequestDispatcher("/hello.jsp").
        forward(request,response);;
  }

解决方案 »

  1.   

    <jsp:useBean id="delete" scope="session" class="EJB01.Delegate"/>
    String rs = delete.方法;
    Sting是你的返回类型。class是你的ejb,scope是范围。id是你在jsp中用的名字。
      

  2.   

    给你一个例子:这是sessionbean 实现类 remote接口和home 就是不贴了,用jb会自动生成:
    public class SystemBugControlBean implements SessionBean {
      SessionContext sessionContext;
      public void ejbCreate() throws CreateException {
        /**@todo Complete this method*/
      }
      public void ejbRemove() {
        /**@todo Complete this method*/
      }
      public void ejbActivate() {
        /**@todo Complete this method*/
      }
      public void ejbPassivate() {
        /**@todo Complete this method*/
      }
      private SystemBugHome getSystemBugHome(){
          SystemBugHome sbHome = null;
               try {
                   Context ctx = new InitialContext();
                   Object o = ctx.lookup("SystemBug");
                   sbHome = (SystemBugHome) javax.rmi.PortableRemoteObject.narrow(o,
                       SystemBugHome.class);
               }
               catch (Exception e) {
                   e.printStackTrace();
                   return null;
               }
               return sbHome;  }
      public void setSessionContext(SessionContext sessionContext) {
        this.sessionContext = sessionContext;
      }
      public Integer addSystemBug(SystemBugWrap sy)  {
      try{
        SystemBugHome sbHome = this.getSystemBugHome();
        SystemBug av = sbHome.create(null);
        av.setCheckDate(sy.getCheckDate());
               av.setCheckIdea(sy.getCheckIdea());
               av.setCheckMan(sy.getCheckMan());
               av.setCheckState(sy.getCheckState());
               av.setModifyDateFrom(sy.getModifyDateFrom());
               av.setModifyDateTo(sy.getModifyDateTo());
               av.setModifyIdea(sy.getModifyIdea());
               av.setModifyMan(sy.getModifyMan());
               av.setModifyState(sy.getModifyState());
               av.setTestContext(sy.getTestContext());
               av.setTestDateFrom(sy.getTestDateFrom());
               av.setTestDateTo(sy.getTestDateTo());
               av.setTestMan(sy.getTestMan());
               return av.getSystemBugID();  }catch(Exception ex){
       ex.printStackTrace();
       return null;
       }
    }
      public boolean mondifySystemBug(SystemBugWrap sy) {
        try {
                SystemBugHome sbHome = this.getSystemBugHome();
                SystemBug sb = sbHome.findByPrimaryKey(sy.getSystemBugID());
                sb.setCheckDate(sy.getCheckDate());
                sb.setCheckIdea(sy.getCheckIdea());
                sb.setCheckMan(sy.getCheckMan());
                sb.setCheckState(sy.getCheckState());
                sb.setModifyDateFrom(sy.getModifyDateFrom());
                sb.setModifyDateTo(sy.getModifyDateTo());
                sb.setModifyIdea(sy.getModifyIdea());
                sb.setModifyMan(sy.getModifyMan());
                sb.setModifyState(sy.getModifyState());
                sb.setTestContext(sy.getTestContext());
                sb.setTestDateFrom(sy.getTestDateFrom());
                sb.setTestDateTo(sy.getTestDateTo());
                sb.setTestMan(sy.getTestMan());
            }
            catch (Exception e) {
                e.printStackTrace();
                return false;
            }
            return true;  }
      public SystemBugWrap getSystemBug(int SystemBugID) {
       SystemBugWrap sbw = null;
            try {
                SystemBugHome sbHome = this.getSystemBugHome();
                SystemBug sb = sbHome.findByPrimaryKey(new Integer(SystemBugID));
                sbw = new SystemBugWrap();
                sbw.setCheckDate(sb.getCheckDate());
                sbw.setCheckIdea(sb.getCheckIdea());
                sbw.setCheckMan(sb.getCheckMan());
                sbw.setCheckState(sb.getCheckState());
                sbw.setModifyDateFrom(sb.getModifyDateFrom());
                sbw.setModifyDateTo(sb.getModifyDateTo());
                sbw.setModifyIdea(sb.getModifyIdea());
                sbw.setModifyMan(sb.getModifyMan());
                sbw.setModifyState(sb.getModifyState());
                sbw.setTestContext(sb.getTestContext());
                sbw.setTestDateFrom(sb.getTestDateFrom());
                sbw.setTestDateTo(sb.getTestDateTo());
                sbw.setTestMan(sb.getTestMan());
            }
            catch (Exception e) {
                e.printStackTrace();
                return null;
            }
            return sbw;
      }
      public SearchToolsAddBean searchSystemBug(String queryString, int pageNum, int numPerPage) {
        DataSource ds = null;
            Connection conn = null;
            Statement st = null;
            ResultSet rs = null;        Vector results = null;
            SearchToolsAddBean stab = null;
            SystemBugWrap sbw = null;
            int rowsCount;        try {
                Context ctx = new InitialContext();
                ds = (DataSource) ctx.lookup("DataSource");
                conn = ds.getConnection();
                st = conn.createStatement();
                rs = st.executeQuery(queryString);
                results = new Vector();
                int fromRecord = (pageNum - 1) * numPerPage + 1;
                int toRecord = fromRecord + numPerPage - 1;
                stab = new SearchToolsAddBean();
                for (rowsCount = 1; rowsCount < fromRecord; rowsCount++) {
                    if (!rs.next()) {
                        break;
                    }
                }            for (; rowsCount <= toRecord; rowsCount++) {
                    if (rs.next()) {
                        sbw = new SystemBugWrap();
                        sbw.setSystemBugID(new Integer(rs.getInt("SystemBugID")));
                        sbw.setCheckDate(rs.getTimestamp("checkDate"));
                        sbw.setCheckIdea(rs.getString("checkIdea"));
                        sbw.setCheckMan(rs.getString("checkMan"));
                        sbw.setCheckState(rs.getString("checkState"));
                        sbw.setModifyDateFrom(rs.getTimestamp("modifyDateFrom"));
                        sbw.setModifyDateTo(rs.getTimestamp("modifyDateTo"));
                        sbw.setModifyIdea(rs.getString("modifyIdea"));
                        sbw.setModifyMan(rs.getString("modifyMan"));
                        sbw.setModifyState(rs.getString("modifyState"));
                        sbw.setTestContext(rs.getString("testContext"));
                        sbw.setTestDateFrom(rs.getTimestamp("testDateFrom"));
                        sbw.setTestDateTo(rs.getTimestamp("testDateTo"));
                        sbw.setTestMan(rs.getString("testMan"));                    results.add(sbw);
                    }
                    else {
                        break;
                    }
                }
                while (rs.next()) {
                    rowsCount++;
                }
                stab.setContents(results);
                stab.setTotalNum(new Integer(rowsCount - 1));
            }
            catch (Exception e) {
                e.printStackTrace();
                return null;
            }
            finally {
                try {
                    if (rs != null) {
                        rs.close();
                        rs = null;
                    }
                    if (st != null) {
                        st.close();
                        st = null;
                    }
                    if (conn != null) {
                        conn.close();
                        conn = null;
                    }
                    if (ds != null) {
                        ds = null;
                    }
                }
                catch (Exception e) {
                    e.printStackTrace();
                    return null;
                }
            }
            return stab;
      }
    }
      

  3.   

    这是实体bean:abstract public class SystemBugBean implements EntityBean {
      EntityContext entityContext;
      public java.lang.Integer ejbCreate(java.lang.Integer systemBugID) throws CreateException {
        setSystemBugID(systemBugID);    return null;
      }
      public void ejbPostCreate(java.lang.Integer systemBugID) throws CreateException {
        /**@todo Complete this method*/
      }
      public void ejbRemove() throws RemoveException {
        /**@todo Complete this method*/
      }
      public abstract void setSystemBugID(java.lang.Integer systemBugID);
      public abstract void setTestMan(java.lang.String testMan);
      public abstract void setTestContext(java.lang.String testContext);
      public abstract void setTestDateFrom(java.sql.Timestamp testDateFrom);
      public abstract void setModifyMan(java.lang.String modifyMan);
      public abstract void setModifyState(java.lang.String modifyState);
      public abstract void setModifyIdea(java.lang.String modifyIdea);
      public abstract void setModifyDateTo(java.sql.Timestamp modifyDateTo);
      public abstract void setCheckMan(java.lang.String checkMan);
      public abstract void setCheckState(java.lang.String checkState);
      public abstract void setCheckIdea(java.lang.String checkIdea);
      public abstract void setCheckDate(java.sql.Timestamp checkDate);
      public abstract void setTestDateTo(java.sql.Timestamp testDateTo);
      public abstract void setModifyDateFrom(java.sql.Timestamp modifyDateFrom);
      public abstract java.lang.Integer getSystemBugID();
      public abstract java.lang.String getTestMan();
      public abstract java.lang.String getTestContext();
      public abstract java.sql.Timestamp getTestDateFrom();
      public abstract java.lang.String getModifyMan();
      public abstract java.lang.String getModifyState();
      public abstract java.lang.String getModifyIdea();
      public abstract java.sql.Timestamp getModifyDateTo();
      public abstract java.lang.String getCheckMan();
      public abstract java.lang.String getCheckState();
      public abstract java.lang.String getCheckIdea();
      public abstract java.sql.Timestamp getCheckDate();
      public abstract java.sql.Timestamp getTestDateTo();
      public abstract java.sql.Timestamp getModifyDateFrom();
      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;
      }
    }这是jsp怎么调用:其中一段:
    SystemBugControlHome amch = EJBUtil.getSystemBugControlHome();
        SystemBugControl amc = amch.create();
      得到amc后,就可以调用商业方法了,如: boolean ifadd = amc.add**(参数);
      

  4.   

    这是一个通过sessionbean 调用实体bean 的例子。SystemBugWrap是一个包装类,里面有字段的set和get方示。EJBUtil里得到sessionbean的接口。如下:
    public class EJBUtil {
      public EJBUtil() {
      }
      public static SystemBugControlHome getSystemBugControlHome() {          SystemBugControlHome speciHome = null;          try {
                  Context ctx = new InitialContext();
                  Object ref = ctx.lookup("SystemBugControl");
                  speciHome = (SystemBugControlHome) PortableRemoteObject.narrow(ref,
                      SystemBugControlHome.class);
              }
              catch (Exception e) {
                  System.out.println(e.getMessage());
              }
              return speciHome;      }
      

  5.   

    jsp代码如下:
    <%@ page contentType="text/html; charset=GBK" %>
    <%@ page import="java.util.*"%>
    <%@ page import="javax.naming.*"%>
    <%@ page import="javax.rmi.PortableRemoteObject"%>
    <%@ page import="testejb.*"%>
    <html>
    <head>
        <title>TestPage</title>
    </head>
    <body bgcolor="#ffffff">
    <%
        Context context = null;
        Sample sample = null;
        
        //获取Context
        try 
        {
            String url = "t3://192.168.1.130:7001";
            String user = null;
            String password = null;
            Properties properties = null;
            out.println("debug | ready to set property ... <br/>");        properties = new Properties();
            properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
            properties.put(Context.PROVIDER_URL, url);
            if (user != null)
            {
                properties.put(Context.SECURITY_PRINCIPAL, user);
                properties.put(Context.SECURITY_CREDENTIALS, password == null ? "" : password);
            }
            //
            out.println("debug | ready to create context ... <br/>");
            context = new InitialContext(properties);
        }
        catch (Exception ex) 
        {
            out.println("<br/>创建Context对象出错:" + ex);
            return;
        }    //查找Home接口,创建对象引用
        try
        {
            //look up jndi name
            Object ref = context.lookup("Sample");
            //look up jndi name and cast to Home interface
            SampleHome sampleHome = (SampleHome) PortableRemoteObject.narrow(ref, SampleHome.class);        //
            sample = sampleHome.create();
        }
        catch (Exception ex)
        {
            out.println("<br/>查找Home接口出错:" + ex);
            return;
        }    //调用EJB对象
        try
        {
            if (sample == null)
                throw new Exception("EJBObject is null.");
            //
            Vector v_result = sample.getUserList();
            while(!v_result.isEmpty())
                out.println("<br/>\t" + v_result.remove(0));
        }
        catch (Exception ex)
        {
            out.println("调用EJB对象出错:" + ex);
        }
    %>
    </body>
    </html>