[jboss-user] [JBoss Seam] - Problem Extending EntityHome with a SFSB

michael.yuan@jboss.com do-not-reply at jboss.com
Mon May 7 19:10:07 EDT 2007


Hi,

Sorry if someone has already asked this ... I am having a problem extending EntityHome with EJB3 SFSBs. So, basically, I have a interface to define the methods I want to use in EntityHome:


  | public interface PersonDaoInt {  
  |   EntityManager getEntityManager();
  |   Object getId();
  |   String persist ();
  |   String update ();
  |   String remove ();
  |   public void destroy ();
  | }
  | 

Then, the bean method is like the following:


  | @Stateful
  | @Name("personDao")
  | public class PersonDao extends EntityHome <Person>
  |                        implements PersonDaoInt {
  |   
  |   // Configure the entity manager
  |   @PersistenceContext (type=EXTENDED)
  |   private EntityManager em;
  |   
  |   public EntityManager getEntityManager () {
  |     return em;
  |   } 
  | 
  |   // Configure the HTTP GET parameter on the page
  |   @RequestParameter
  |   Long pid;
  | 
  |   public Object getId() { return pid; }
  | 
  |   // SFSB requirement
  |   @Remove @Destroy
  |   public void destroy () { }
  | }
  | 

But at deployment time (JBoss 4.0.5 GA), EJB3 complains the following. Does it mean the "remove()" is no longer allowed in EJB3 SFSBs? 


  | java.lang.IllegalArgumentException: methods with same signature remove() but incompatible return types: void and others
  |         at sun.misc.ProxyGenerator.checkReturnTypes(ProxyGenerator.java:610)
  |         at sun.misc.ProxyGenerator.generateClassFile(ProxyGenerator.java:420)
  |         at sun.misc.ProxyGenerator.generateProxyClass(ProxyGenerator.java:306)
  |         at java.lang.reflect.Proxy.getProxyClass(Proxy.java:501)
  |         at org.jboss.ejb3.stateful.BaseStatefulProxyFactory.init(BaseStatefulProxyFactory.java:58)
  |         at org.jboss.ejb3.stateful.BaseStatefulProxyFactory.start(BaseStatefulProxyFactory.java:66)
  |         at org.jboss.ejb3.stateful.StatefulLocalProxyFactory.start(StatefulLocalProxyFactory.java:61)
  |         at org.jboss.ejb3.ProxyDeployer.start(ProxyDeployer.java:105)
  |         at org.jboss.ejb3.SessionContainer.start(SessionContainer.java:124)
  |         at org.jboss.ejb3.stateful.StatefulContainer.start(StatefulContainer.java:91)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at org.jboss.ejb3.ServiceDelegateWrapper.startService(ServiceDelegateWrapper.java:102)
  |         at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
  |         at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
  |         at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
  |         at $Proxy0.start(Unknown Source)
  |         at org.jboss.system.ServiceController.start(ServiceController.java:417)
  |         at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
  |         at $Proxy54.start(Unknown Source)
  |         at org.jboss.ejb3.JmxKernelAbstraction.install(JmxKernelAbstraction.java:96)
  |         at org.jboss.ejb3.Ejb3Deployment.registerEJBContainer(Ejb3Deployment.java:281)
  |         at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:328)
  |         at org.jboss.ejb3.Ejb3Module.startService(Ejb3Module.java:91)
  |         at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
  |         at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
  |         at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  | ... ...
  | 

Anyone know what's going on? Thanks. Please let me know if you want more error trace.

cheers
Michael

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4043795#4043795

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4043795



More information about the jboss-user mailing list