/*
 *
 * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved.
 * 
 * This software is the proprietary information of Sun Microsystems, Inc.  
 * Use is subject to license terms.
 * 
 */import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.rmi.PortableRemoteObject;
import javax.naming.InitialContext;import Adder;
import AdderHome;public class AdderServlet extends HttpServlet {   Adder adder;    public void init() throws ServletException {       System.out.println("in init of AdderServlet");
       try {
           InitialContext ic = new InitialContext();
           Object objref = ic.lookup("java:comp/env/ejb/Adder");
           System.out.println("lookup ok");
           AdderHome home = 
              (AdderHome)PortableRemoteObject.narrow(objref, 
                                           AdderHome.class);
           System.out.println("narrow ok");
           adder = home.create(0);
           System.out.println("create ok");
       } catch(Exception e) {
            e.printStackTrace();
       }   }    public void doGet (HttpServletRequest req, HttpServletResponse res)
                      throws ServletException, IOException {      System.out.println("in doGet");
      String inputString = req.getParameter("inputString");
      Integer inputNumber = new Integer(inputString);
      adder.add(inputNumber.intValue());
      int total = adder.getTotal();
      res.setContentType("text/html");
      PrintWriter out = res.getWriter();
      generatePage(out,total);   }
  private void generatePage(PrintWriter out, int total) {      out.println("<html>");
      out.println("<head>");
      out.println("<title>Input for AdderServlet</title>");
      out.println("</head>");
      out.println("<body>");
      out.println("The running total is: " + String.valueOf(total));
      out.println("<p>");
      out.println("<form method = get action=\"AdderAlias\">");
      out.println("Please enter an integer:");
      out.println("<input type=text name=\"inputString\">");
      out.println("<p>");
      out.println("<input type=submit>");
      out.println("</form>");
      out.println("</body>");
      out.println("</html>");
  }   public String getServletInfo() {      return "This servlet accesses an enterprise bean.";
  }} 
//记得给分

解决方案 »

  1.   

    呵呵,分我是一定会给的,先谢了,不过这里还有一个问题请教:import Adder;
    import AdderHome;由于刚学习这东西,我不懂,请指教!
      

  2.   

    通过本地home接口创建Remote接口,然后调用remote中的相应的方法就可以了
      

  3.   

    ~~~~~~~~~~~~~~~~~~
    import Adder;
    import AdderHome;
    ~~~~~~~~~~~~~~~~~~~
    有必要要吗,EJB都已经被打包发布了,还IMPORT干什么
    直接LOOKUP就好了
      

  4.   

    当然需要Adder,与AdderHome接口,此为java之基本语法.否则在servlet中就无法使用这两种接口类型.
    就只能使用reflection去调用
    hello方法.