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".