Dear all

Your help/advice is sought for the following compilation errors during EJB
deployment [Enclosed are  compilation error message, CourseBean.java,
CourseHome.java & EnrollerServlet.java]:

Thanks a lot

Gab
===================================================================

Method ejbFindAll() not found in class CourseBean.
        primaryKeys = ejb.ejbFindAll();

Method getId() not found in class CourseBean.
        $retVal = ejb.getId();

Method getTeacher() not found in class CourseBean.
        $retVal = ejb.getTeacher();

Method getMaxEnrollment() not found in class CourseBean.
        $retVal = ejb.getMaxEnrollment();

Method getCourseIds() not found in class StudentBean.
        $retVal = ejb.getCourseIds();

5 errors
Compilation failed...

____________________________________________________________

CourseBean.java
____________________________________________________________

/*
 *
 * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved.
 *
 * This software is the proprietary information of Sun Microsystems, Inc.
 * Use is subject to license terms.
 *
 */

import java.sql.*;
import javax.sql.*;
import java.util.*;
import javax.ejb.*;
import javax.naming.*;
import javax.rmi.PortableRemoteObject;

public class CourseBean implements EntityBean {

   private String courseId;
   private String name;
   private String teacher;
   private String maxEnrollment;
   private ArrayList studentIds;
   private Connection con;
   private String dbName = "java:comp/env/jdbc/CollegeDB";
   private EntityContext context;
   private EnrollerHome enrollerHome;

   public ArrayList getStudentIds() {

      System.out.println("in getStudentIds");
      return studentIds;
   }

   public String getName() {

      return name;
   }

   public void setName(String name) {

      this.name = name;
   }

   public String ejbCreate(String courseId, String name, String teacher,
String maxEnrollment)
       throws CreateException {

       System.out.println("in ejbCreate");
       try {
          insertCourse(courseId, name, teacher, maxEnrollment);
       } catch (Exception ex) {
           throw new EJBException("ejbCreate: " +
              ex.getMessage());
       }

       this.courseId = courseId;
       this.name = name;
       this.teacher = teacher;
       this.maxEnrollment = maxEnrollment;
       System.out.println("about to leave ejbCreate");
       return courseId;
   }

   public String ejbFindByPrimaryKey(String primaryKey)
      throws FinderException {

      boolean result;

      try {
         result = selectByPrimaryKey(primaryKey);
       } catch (Exception ex) {
           throw new EJBException("ejbFindByPrimaryKey: " +
              ex.getMessage());
       }

      if (result) {
         return primaryKey;
      }
      else {
         throw new ObjectNotFoundException
            ("Row for id " + primaryKey + " not found.");
      }
   }

   public void ejbRemove() {

      try {
         deleteCourse(courseId);
       } catch (Exception ex) {
           throw new EJBException("ejbRemove: " +
              ex.getMessage());
       }
   }

   public void setEntityContext(EntityContext context) {

      System.out.println("in setEntityContext");
      this.context = context;
      studentIds = new ArrayList();
      try {
         makeConnection();
         Context initial = new InitialContext();
         Object objref = initial.lookup("java:comp/env/ejb/Enroller");
         enrollerHome = (EnrollerHome)PortableRemoteObject.narrow(objref,
                                           EnrollerHome.class);

      } catch (Exception ex) {
          throw new EJBException("Unable to connect to database. " +
             ex.getMessage());
      }
   }

   public void unsetEntityContext() {

      try {
         con.close();
      } catch (SQLException ex) {
          throw new EJBException("unsetEntityContext: " + ex.getMessage());
      }
   }

   public void ejbActivate() {

      courseId = (String)context.getPrimaryKey();
   }

   public void ejbPassivate() {

      courseId = null;
   }

   public void ejbLoad() {

      System.out.println("in ejbLoad");
      try {
         loadCourse();
         loadStudentIds();
       } catch (Exception ex) {
           throw new EJBException("ejbLoad: " +
              ex.getMessage());
       }
      System.out.println("leaving ejbLoad");
   }

   private void loadStudentIds() {

      System.out.println("in loadStudentIds");
      studentIds.clear();

      try {
         Enroller enroller = enrollerHome.create();
         ArrayList a = enroller.getStudentIds(courseId);
         studentIds.addAll(a);

      } catch (Exception ex) {
          throw new EJBException("loadStudentIds: " +
             ex.getMessage());
       }
      System.out.println("leaving loadStudentIds");
   }

   public void ejbStore() {

      System.out.println("in ejbStore");
      try {
         storeCourse();
       } catch (Exception ex) {
           throw new EJBException("ejbStore: " +
              ex.getMessage());
       }
      System.out.println("leaving ejbStore");
   }

   public void ejbPostCreate(String courseId, String name, String teacher,
String maxEnrollment) { }

/*********************** Database Routines *************************/

   private void makeConnection() throws NamingException, SQLException {

      InitialContext ic = new InitialContext();
      DataSource ds = (DataSource) ic.lookup(dbName);
      con =  ds.getConnection();
   }

   private void insertCourse (String courseId, String name, String teacher,
String maxEnrollment)
       throws SQLException {

          String insertStatement =
                "insert into course values ( ? , ? )";
          PreparedStatement prepStmt =
                con.prepareStatement(insertStatement);

          prepStmt.setString(1, courseId);
          prepStmt.setString(2, name);
          prepStmt.setString(3, teacher);
          prepStmt.setString(4, maxEnrollment);

          prepStmt.executeUpdate();
          prepStmt.close();
   }

   private boolean selectByPrimaryKey(String primaryKey)
      throws SQLException {

      String selectStatement =
            "select courseid " +
            "from course where courseid = ? ";
      PreparedStatement prepStmt =
            con.prepareStatement(selectStatement);
      prepStmt.setString(1, primaryKey);

      ResultSet rs = prepStmt.executeQuery();
      boolean result = rs.next();
      prepStmt.close();
      return result;
   }

   private void deleteCourse(String courseId) throws SQLException {

      String deleteStatement =
            "delete from course  " +
            "where courseid = ?";
      PreparedStatement prepStmt =
            con.prepareStatement(deleteStatement);

      prepStmt.setString(1, courseId);
      prepStmt.executeUpdate();
      prepStmt.close();
   }

   private void loadCourse() throws SQLException {

      String selectStatement =
            "select name " +
            "from course where courseid = ? ";
      PreparedStatement prepStmt =
            con.prepareStatement(selectStatement);

      prepStmt.setString(1, courseId);

      ResultSet rs = prepStmt.executeQuery();

      if (rs.next()) {
         name = rs.getString(1);
         teacher = rs.getString(2);
         maxEnrollment = rs.getString(3);
         prepStmt.close();
      }
      else {
         prepStmt.close();
         throw new NoSuchEntityException("Row for courseId " + courseId +
            " not found in database.");
      }
   }

   private void storeCourse() throws SQLException {

      String updateStatement =
            "update course set name =  ? " +
            "where courseid = ?";
      PreparedStatement prepStmt =
            con.prepareStatement(updateStatement);

      prepStmt.setString(1, name);
      prepStmt.setString(2, courseId);
      prepStmt.setString(3, teacher);
      prepStmt.setString(4, maxEnrollment);
      int rowCount = prepStmt.executeUpdate();
      prepStmt.close();

      if (rowCount == 0) {
         throw new EJBException("Storing row for courseId " +
            courseId + " failed.");
      }
   }


} // CourseBean
__________________________________________________________________
CourseHome.java
__________________________________________________________________

/*
 *
 * ICOM6013/2001 EJB Assignment
 *
 * Course Bean's Home Interface.
 *
 */

import java.util.*;
import java.rmi.RemoteException;
import javax.ejb.*;

public interface CourseHome extends EJBHome {

    public Course create(String courseId, String name, String teacher, String
maxEnrollment)
        throws RemoteException, CreateException;

    public Course findByPrimaryKey(String courseId)
        throws FinderException, RemoteException;

    public Collection findAll()
            throws FinderException, RemoteException;
}
________________________________________________________________
EnrollerServlet.java
___________________________________________________________________

/*
 * ICOM6013/2001 EJB Assignment
 *
 * Enroller Servlet client
 *
 */

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import javax.naming.*;
import javax.rmi.*;
import java.util.*;


public class EnrollerServlet extends HttpServlet
{
    private static final String PAGE_VIEW_STUDENT        ="VIEW STUDENT";
    private static final String PAGE_ENROLL_COURSE       ="ENROLL COURSE";
    private static final String PAGE_UNENROLL_COURSE     ="UNENROLL COURSE";
    private static final String PAGE_VIEW_COURSE         ="VIEW COURSE";
    private static final String PAGE_LOGIN               ="LOGIN";
    private static final String PAGE_LOGOUT              ="LOGOUT";
    private static final String PAGE_BACK_TO_MENU        ="BACK TO MENU";
    private static final String PAGE_MENU                ="MENU";

    EnrollerHome eHome;
    StudentHome sHome;
    CourseHome cHome;
    InitialContext ctx = null;
    Student student = null;
    Enroller enroller = null;

    public void init(ServletConfig config)
        throws ServletException
    {
        // lookup home interface

        try
        {
            ctx = new InitialContext();

            Object objref = ctx.lookup("java:comp/env/ejb/Enroller");
            eHome = (EnrollerHome)
                PortableRemoteObject.narrow(objref, EnrollerHome.class);

            objref = ctx.lookup("java:comp/env/ejb/Student");
            sHome = (StudentHome)
                PortableRemoteObject.narrow(objref, StudentHome.class);

            objref = ctx.lookup("java:comp/env/ejb/Course");
            cHome = (CourseHome)
                PortableRemoteObject.narrow(objref, CourseHome.class);
            enroller = eHome.create();

        } catch (Exception ex)
        {
            ex.printStackTrace();
        }
    } /* init */


    public void doGet(HttpServletRequest request, HttpServletResponse
response)
        throws ServletException, IOException
    {
        response.setContentType("text/html");

        String pageID = request.getParameter("PAGE_ID");

        if (pageID.equals(PAGE_LOGIN) || pageID.equals(PAGE_BACK_TO_MENU))
        {
            generateMenuPage(request, response);
        }
        else if (pageID.equals(PAGE_MENU))
        {
            String menuID = request.getParameter("MENU_ID");

            if (menuID.equals(PAGE_VIEW_STUDENT))
            {
                generateViewStudentPage(request, response);
            }
            else if (menuID.equals(PAGE_VIEW_COURSE))
            {
                // generateViewCoursePage(request, response);
            }
            else if (menuID.equals(PAGE_ENROLL_COURSE))
            {
                generateEnrollmentPage(request, response);
            }
            else if (menuID.equals(PAGE_UNENROLL_COURSE))
            {
                // generateUnenrollmentPage(request, response);
            }
            else if (menuID.equals(PAGE_LOGOUT))
            {
                generateLoginPage(request, response);
            }
        }
        else if (pageID.equals(PAGE_ENROLL_COURSE))
        {
            generatePerformEnrollmentPage(request, response);
        }
        else if (pageID.equals(PAGE_UNENROLL_COURSE))
        {
            // generatePerformUnenrollmentPage(request, response);
        }
        else
        {
            PrintWriter out = response.getWriter();
            String menuID = request.getParameter("MENU_ID");
            out.println("pageID="+pageID);
            out.println("menuID="+menuID);
        }

    } /* doGet */


    private void generateMenuPage(HttpServletRequest request,
                                  HttpServletResponse response)
        throws ServletException, IOException
    {
        PrintWriter out = response.getWriter();
        String studentID;

        studentID = request.getParameter("STUDENT_ID");
        try
        {
                if (student == null)
                    student = sHome.findByPrimaryKey(studentID);
        } catch (javax.ejb.ObjectNotFoundException ex1)
        {
            generateLoginPage(request, response);
            return;

        } catch (Exception ex2)
        {
            generateErrorPage(request, response, ex2);
            return;
        }

        generateTitle("Course Enrollment System Menu", request, response);

        // display View Student menu
        out.println("<FORM METHOD=GET ACTION=EnrollerServletAlias>");
        out.println("<INPUT TYPE=SUBMIT VALUE=\"View Student\">");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=STUDENT_ID VALUE=\""+studentID+"\">");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=PAGE_ID VALUE=\""+PAGE_MENU+"\">");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=MENU_ID VALUE=\""+PAGE_VIEW_STUDENT+"\">");
        out.println("</FORM>");
        out.println("<P>");

        // display Course Enroll menu
        out.println("<FORM METHOD=GET ACTION=EnrollerServletAlias>");
        out.println("<INPUT TYPE=SUBMIT VALUE=\"Course Enroll\">");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=STUDENT_ID VALUE=\""+studentID+"\">");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=PAGE_ID VALUE=\""+PAGE_MENU+"\">");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=MENU_ID VALUE=\""+PAGE_ENROLL_COURSE+"\">");
        out.println("</FORM>");
        out.println("<P>");

        // display Course Unenroll menu
        out.println("<FORM METHOD=GET ACTION=EnrollerServletAlias>");
        out.println("<INPUT TYPE=SUBMIT VALUE=\"Course Unenroll\">");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=STUDENT_ID VALUE=\""+studentID+"\">");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=PAGE_ID VALUE=\""+PAGE_MENU+"\">");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=MENU_ID VALUE=\""+PAGE_UNENROLL_COURSE+"\">");
        out.println("</FORM>");
        out.println("<P>");

        // display View Course menu
        out.println("<FORM METHOD=GET ACTION=EnrollerServletAlias>");
        out.println("<INPUT TYPE=SUBMIT VALUE=\"View Course\">");
        out.println("<B>Course ID:</B><INPUT TYPE=TEXT");
        out.println("       NAME=COURSE_ID>");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=STUDENT_ID VALUE=\""+studentID+"\">");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=PAGE_ID VALUE=\""+PAGE_MENU+"\">");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=MENU_ID VALUE=\""+PAGE_VIEW_COURSE+"\">");
        out.println("</FORM>");
        out.println("<P>");

        // display Logout menu
        out.println("<FORM METHOD=GET ACTION=EnrollerServletAlias>");
        out.println("<INPUT TYPE=SUBMIT VALUE=\"Logout\">");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=PAGE_ID VALUE=\""+PAGE_MENU+"\">");
        out.println("<INPUT TYPE=HIDDEN");
        out.println("       NAME=MENU_ID VALUE=\""+PAGE_LOGOUT+"\">");
        out.println("</FORM>");
        out.println("<P>");

        out.println("</BLOCKQUOTE></BODY></HTML>");

    } /* generateMenuPage */


    private void generateViewStudentPage(HttpServletRequest request,
                                         HttpServletResponse response)
        throws ServletException, IOException
    {
        try
        {
            PrintWriter out = response.getWriter();
            String studentID = request.getParameter("STUDENT_ID");

            // Student s = sHome.findByPrimaryKey(studentID);
            // ArrayList courses = (ArrayList)student.getCourseIds();
            ArrayList courses = (ArrayList)enroller.getCourseIds(studentID);
            Iterator i = courses.iterator();
            int cnt = 0;

            generateTitle("View Student", request, response);

            out.println("<P><H3>Student Details</H3>");
            out.println("<B>Student ID  : </B>"+studentID);
            out.println("<B>Student Name: </B>"+student.getName());

            out.println("<P><H3>Courses Taken</H3>");
            out.println("<TABLE BORDER=1><TBODY>");
            out.println("<TR><TD>&nbsp;&nbsp;&nbsp;&nbsp;</TD>");/* rec no */
            out.println("    <TD><B>Course ID</B></TD>");       /* course id */
            out.println("    <TD><B>Course Name</B></TD>");     /* course */
            out.println("    <TD><B>Teacher</B></TD>");         /* teacher */
            out.println("</TR>");

            while (i.hasNext())
            {
                String courseID = (String)i.next();
                Course c = cHome.findByPrimaryKey(courseID);
                cnt++;
                out.println("<TR><TD>"+cnt+"</TD>");
                out.println("    <TD>"+courseID+"</TD>");
                out.println("    <TD>"+c.getName()+"</TD>");
                out.println("    <TD>"+c.getTeacher()+"</TD>");
                out.println("</TR>");
            }

            out.println("</TBODY></TABLE>");
            generateBackToMenuPage(studentID, request, response);
            out.println("</BLOCKQUOTE></BODY></HTML>");

        } catch (Exception ex) // EJB exception
        {
            generateErrorPage(request, response, ex);
        }

    } /* generateViewStudentPage */


    private void generatePerformEnrollmentPage(HttpServletRequest request,
                                               HttpServletResponse response)
        throws ServletException, IOException
    {
        try
        {
            PrintWriter out = response.getWriter();
            String studentID = request.getParameter("STUDENT_ID");
            String courseID  = request.getParameter("COURSE_ID");

            generateTitle("Enroll Course Result", request, response);
            enroller.enroll(studentID, courseID); /* check status */
//          eHome.remove(e);

            out.println("<P>");
            out.println(studentID+"'s enrollment for "+courseID+" is Done.");
            generateBackToMenuPage(studentID, request, response);
            out.println("</BODY></HTML>");

        } catch (Exception ex) // EJB exception
        {
            generateErrorPage(request, response, ex);
        }

    } /* generatePerformEnrollmentPage */


    private void generateEnrollmentPage(HttpServletRequest request,
                                        HttpServletResponse response)
        throws ServletException, IOException
    {
        try
        {
            PrintWriter out = response.getWriter();
            String studentID = request.getParameter("STUDENT_ID");

            generateTitle("Course Enrollment", request, response);

            Collection courses = (Collection)cHome.findAll();
            Iterator i = courses.iterator();

            out.println("<FORM METHOD=GET ACTION=EnrollerServletAlias>");
            out.println("<P><B>Student ID:</B>"+studentID);
            out.println("<INPUT TYPE=HIDDEN");
            out.println("       NAME=STUDENT_ID VALUE=\""+studentID+"\">");
            out.println("<P><B>Course&nbsp;&nbsp;&nbsp;&nbsp;:</B>");
            out.println("<SELECT SIZE=1 NAME=COURSE_ID>");

            while (i.hasNext())
            {
                Course c = (Course)i.next();
                String courseID = c.getId();
                out.println("<OPTION VALUE=\""+courseID+"\">");
                out.println(courseID+" --- "+c.getName());
                out.println("</OPTION>");
            }

            out.println("</SELECT><P>");
            out.println("<INPUT  TYPE=SUBMIT VALUE=Enroll>");
            out.println("<INPUT  TYPE=RESET  VALUE=Reset>");
            out.println("<INPUT  TYPE=HIDDEN");
            out.println("        NAME=PAGE_ID VALUE=\""+PAGE_ENROLL_COURSE+"\">");
            out.println("</FORM>");

            generateBackToMenuPage(studentID, request, response);

            out.println("</BLOCKQUOTE></BODY></HTML>");

        } catch (Exception ex) // EJB exception
        {
            generateErrorPage(request, response, ex);
        }

    } /* generateEnrollmentPage */


    private void generateLoginPage(HttpServletRequest request,
                                   HttpServletResponse response)
        throws ServletException, IOException
    {
        PrintWriter out = response.getWriter();

        student = null;
        generateTitle("EJB College - Course Enrollment System",
                      request, response);

        out.println("<FORM METHOD=GET ACTION=EnrollerServletAlias>");
        out.println("<P>Enter Your Student ID:<INPUT TYPE=TEXT NAME=STUDENT_ID>");
        out.println("<P><INPUT TYPE=SUBMIT VALUE=Login>&nbsp;<INPUT TYPE=RESET>");
        out.println("<INPUT TYPE=HIDDEN NAME=PAGE_ID VALUE=\""+PAGE_LOGIN+"\">");
        out.println("</FORM>");
        out.println("</BLOCKQUOTE></BODY></HTML>");

    } /* generateLoginPage */

    private void generateTitle(String title,
                               HttpServletRequest request,
                               HttpServletResponse response)
        throws ServletException, IOException
    {
        PrintWriter out = response.getWriter();

        out.println("<HTML>");
        out.println("<HEAD><TITLE>");
        out.println(title);
        out.println("</TITLE></HEAD>");
        out.println("<BODY>");
        out.println("<H2>"+title+"</H2>");
        out.println("<BLOCKQUOTE>");

    } /* generateTitle */

    private void generateBackToMenuPage(String studentID,
                                        HttpServletRequest request,
                                        HttpServletResponse response)
        throws ServletException, IOException
    {
        PrintWriter out = response.getWriter();

        out.println("<FORM METHOD=GET ACTION=EnrollerServletAlias>");
        out.println("<INPUT  TYPE=SUBMIT VALUE=\"Back To Main Menu\">");
        out.println("<INPUT  TYPE=HIDDEN");
        out.println("        NAME=STUDENT_ID VALUE=\""+studentID+"\">");
        out.println("<INPUT  TYPE=HIDDEN");
        out.println("        NAME=PAGE_ID VALUE=\""+PAGE_BACK_TO_MENU+"\">");
        out.println("</FORM>");

    } /* generateBackToMenuPage */


    private void generateErrorPage(HttpServletRequest request,
                                   HttpServletResponse response,
                                   Exception ejbError)
        throws ServletException, IOException
    {
        PrintWriter out = response.getWriter();

        out.println("<HTML><BODY><H2>Error</H2>");
        ejbError.printStackTrace(out);
        out.println("</BODY></HTML>");

    } /* generateErrorPage */


    public void destroy()
    {
        // do nothing
        System.out.println("Servlet destroy");
        try {
            enroller.remove();
        } catch (Exception ex)
        {
            ex.printStackTrace();
        }
    } /* destroy */


} /* EnrollerServlet */

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to