Kumar,

You should change:

        book = (lafpackage.Book)bRef;  //Exception occures here

to:

        book = (lafpackage.Book)PortableRemoteObject.narrow(bRef, lafpackage.Book);

This is required for portable code, and clearly your container needs
it to be done portably.

Kumar K Behura wrote:
>
> Hi All,
>
>   I have a BMP entity bean which contains findXXX method. This methods
> returns Enumeration of the primary key object. when i am calling it from my
> session bean and casting it to the remote reference i am geting
> ClassCastException  . I am giving the code snippet for the finder method
> and the caller method. I am using websphere3.5 app. server.
>
> Finder method. code
>
>   public Enumeration ejbFindByAllCriteria(int bookCategoryId, String title,
> String author, String publisher) throws java.rmi.RemoteException,
> javax.ejb.FinderException {
>
>    log("Inside findByAllCriteria method\n");
>
>    Connection con = null;
>    PreparedStatement ps = null;
>    ResultSet rs = null;
>
>    try {
>
>      log("getting the connection object\n");
>      con = this.getConnection();
>      log("getting the Prepared Statement object\n");
>      //log("SQLSTRING: select * from SP_CATEGORY_DETAILS where User_Id = ?
> and Sp_Category_Details = ?");
>
>      ps = con.prepareStatement("select Book_Id from BOOK where
> Book_Category_Id = ? And Title like ? OR Author like ? OR Publisher like ?
> ");
>      ps.setInt(1, bookCategoryId);
>      ps.setString(2, title);
>      ps.setString(3, author);
>      ps.setString(4, publisher);
>
>      //log("Method argument userId: " + uKey.userId + " \n");
>
>      log("executing the prepared statement in ejbFindByAllCriteria\n");
>
>      rs = ps.executeQuery();
>
>      Hashtable hKey = new Hashtable();
>      //Vector keys = new Vector();
>      int i=0;
>      while(rs.next()) {
>
>        lafpackage.BookPK bookPk = new lafpackage.BookPK(rs.getInt(1));
>        //bookPk.bookId = rs.getInt(1);
>      // keys.addElement(bookPk);
>           hKey.put("pk"+i, bookPk);
>           i=i+1;
>
>      }
>
>      log("Before returning values "+hKey.size());
>      return hKey.elements();
>
>    } catch (SQLException e) {
>      log(e.getMessage());
>      throw new FinderException(e.getMessage());
>
>    } finally {
>      try {
>        if (ps != null)
>         ps.close();
>        if (con != null)
>         con.close();
>      } catch (SQLException e) {
>        log(e.getMessage() + "\n");
>      }
>    }
>
>   }
>
> Caller method in session bean
>
> public Vector searchBookDetails(int categoryId, String title, String
> author, String publisher, PrintWriter out) throws RemoteException
> {
>
>    Vector bookDetails = new Vector(10,5);
>    errLog("Before try block");
>
>    try {
>      errLog("Inside try block..");
>
>      Enumeration ebk =
> bookHomeRef.findByAllCriteria(categoryId,title,author,publisher);
>
>      while(ebk.hasMoreElements())
>      {
>        errLog("Inside while block.. SearchSession\n");
>        Object bRef = ebk.nextElement();
>        errLog("bRef"+bRef.getClass());
>        book = (lafpackage.Book)bRef;  //Exception occures here
>        errLog((lafpackage.Book)bRef;"after Book book =
> (Book)ebk.nextElement()");
>        Vector row = book.getDetails();
>        errLog("afterVector row = book.getDetails()...");
>        bookDetails.addElement(row);
>        errLog("End of while block..");
>      }
>
>      errLog("Before returning book details..SearchSession");
>      return bookDetails;
>    }
>    catch(FinderException fe)
>    {
>      errLog("Finder Exception:"+fe.getMessage());
>      return null;
>    }
>    catch(Exception e)
>    {
>      errLog("Exception:"+e.getMessage());
>      e.printStackTrace(out);
>      return null;
>    }
>
>   }
>
> Waiting for your valuable reply.
>
> thanks
> kumar
>
> ===========================================================================
> 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".
>
> ===========================================================================
> 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".

--
________________________________________________________________________________

Evan Ireland              Sybase EAServer Engineering        [EMAIL PROTECTED]
                            Wellington, New Zealand               +64 4 934-5856

===========================================================================
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