各位大侠,小弟新手新新手!遇到如下问题:
Global JNDI Namespace
+- EJBStruts (class: org.jnp.interfaces.NamingContext)
  |   +- LibraryCart (class: org.jnp.interfaces.NamingContext)
  |   |   +- localStatefulProxyFactory (class: org.jboss.ejb3.stateful.StatefulLocalProxyFactory)
  |   |   +- local (class: java.lang.Object)
  |   +- BookDao (class: org.jnp.interfaces.NamingContext)
  |   |   +- local (proxy: $Proxy99 implements interface de.laliluna.library.BookDaoLocal,interface org.jboss.ejb3.JBossProxy,interface javax.ejb.EJBLocalObject)
  |   +- CustomerDao (class: org.jnp.interfaces.NamingContext)
  |   |   +- local (proxy: $Proxy106 implements interface de.laliluna.library.CustomerDaoLocal,interface org.jboss.ejb3.JBossProxy,interface javax.ejb.EJBLocalObject)
为何我在同一个VM的WEB中调用该LOCAL接口时出现java.lang.ClassCastException: $Proxy111 cannot be cast to de.laliluna.library.BookDao这个错误?
调用的代码如下:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
BookDao bookDao;
CustomerDao customerDao;
Random r = new Random();
try {
Context context = new InitialContext();
bookDao = (BookDao) PortableRemoteObject.narrow(context
.lookup(Common.JNDI_PREFIX + BookDao.LocalJNDIName),
BookDaoLocal.class);
customerDao = (CustomerDao) PortableRemoteObject.narrow(context
.lookup(Common.JNDI_PREFIX + CustomerDao.LocalJNDIName),
CustomerDao.class);
} catch (NamingException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
Book book = new Book(null, "EJB 3 Developer " + r.nextInt(100),
"Sebastian");
bookDao.save(book);
Customer customer = new Customer(null, "Sebastian " + r.nextInt(100));
customerDao.save(customer);
return mapping.findForward(Common.SUCCESS);
}请给个明示,小弟我实在找不到错误在哪里