2 Replies Latest reply on Jul 5, 2006 8:30 AM by sbalmos

    ejbActivate signature error

    sbalmos

      Hi everyone,

      I'm trying to deploy some session beans (both stateful and stateless) using the EJB3 deployer, using my existing XML deployment descriptors. However, the deployer always bombs, saying that ejbActivate() has the wrong signature. See below for all code involved:

      15:31:39,005 INFO [Ejb3DescriptorHandler] adding class annotation javax.ejb.Stateless to com.simunex.snx.arcrecmgr.ArcRecMgrServicesBean org.jboss.ejb.StatelessImpl@f38b42
      15:31:39,005 INFO [Ejb3DescriptorHandler] adding class annotation javax.ejb.Remote to com.simunex.snx.arcrecmgr.ArcRecMgrServicesBean org.jboss.ejb.RemoteImpl@9d6d87
      15:31:39,015 INFO [Ejb3DescriptorHandler] adding class annotation javax.ejb.TransactionManagement to com.simunex.snx.arcrecmgr.ArcRecMgrServicesBean org.jboss.ejb.TransactionManagementImpl@195bbec
      15:31:39,015 INFO [Ejb3DescriptorHandler] adding class annotation javax.ejb.RemoteHome to com.simunex.snx.arcrecmgr.ArcRecMgrServicesBean org.jboss.annotation.ejb.RemoteHomeImpl@54919e
      15:31:39,025 INFO [Ejb3DescriptorHandler] adding class annotation org.jboss.annotation.ejb.RemoteBinding to com.simunex.snx.arcrecmgr.ArcRecMgrServicesBean org.jboss.annotation.ejb.RemoteBindingImpl@5476a7
      15:31:39,025 INFO [Ejb3DescriptorHandler] adding class annotation org.jboss.annotation.ejb.RemoteBinding to com.simunex.snx.arcrecmgr.ArcRecMgrServicesBean org.jboss.annotation.ejb.RemoteBindingImpl@5476a7
      15:31:39,095 INFO [Ejb3DescriptorHandler] adding class annotation javax.ejb.MessageDriven to com.simunex.snx.arcrecmgr.PlotMessageReceiver org.jboss.ejb.MessageDrivenImpl@92b7c2
      15:31:39,095 INFO [Ejb3DescriptorHandler] adding class annotation javax.ejb.TransactionManagement to com.simunex.snx.arcrecmgr.PlotMessageReceiver org.jboss.ejb.TransactionManagementImpl@5e25f3
      15:31:39,446 INFO [Ejb3Deployment] EJB3 deployment time took: 1272
      ...
      15:31:50,782 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=SimuNex-Backend.ear,jar=Backend-ArcRecMgr.jar,name=ArcRecMgrServicesEJB,service=EJB3 with dependencies:
      15:31:51,053 WARN [ServiceController] Problem starting service jboss.j2ee:ear=SimuNex-Backend.ear,jar=Backend-ArcRecMgr.jar,name=ArcRecMgrServicesEJB,service=EJB3
      java.lang.RuntimeException: An exception occurred initialising interceptors for class com.simunex.snx.arcrecmgr.ArcRecMgrServicesBean.getEJBHome
       at org.jboss.ejb3.interceptor.EJB3InterceptorsFactory.createPerJoinpoint(EJB3InterceptorsFactory.java:106)
      ...
      Caused by: java.lang.RuntimeException: @javax.ejb.PostActivate annotated method has the wrong signature - public void com.simunex.snx.arcrecmgr.ArcRecMgrServicesBean.ejbActivate() throws javax.ejb.EJBException
       at org.jboss.ejb3.interceptor.InterceptorInfoRepository$ContainerInitialiser.resolveLifecycleMethod(InterceptorInfoRepository.java:753)
      ...
      
       <session>
       <ejb-name>ArcRecMgrServicesEJB</ejb-name>
       <home>com.simunex.snx.arcrecmgr.ArcRecMgrServicesHome</home>
       <remote>com.simunex.snx.arcrecmgr.ArcRecMgrServices</remote>
       <ejb-class>com.simunex.snx.arcrecmgr.ArcRecMgrServicesBean</ejb-class>
       <session-type>Stateless</session-type>
       <transaction-type>Container</transaction-type>
       </session>
      
      public interface ArcRecMgrServices extends EJBObject
      {}
      
      public interface ArcRecMgrServicesHome extends EJBHome
      {
       com.simunex.snx.arcrecmgr.ArcRecMgrServices create() throws RemoteException, CreateException;
      }
      
      public class ArcRecMgrServicesBean implements SessionBean
      {
       public ArcRecMgrServicesBean() {}
      
       public void ejbCreate() throws CreateException {}
      
       public void setSessionContext(SessionContext sessionContext) throws EJBException {}
      
       public void ejbRemove() throws EJBException {}
      
       public void ejbActivate() throws EJBException {}
      
       public void ejbPassivate() throws EJBException {}
      }
      


      I haven't really started implementing anything in this bean. It's there really for an example. But all my other beans have the same problem. Any ideas? This is running on 4.0.4-GA with RC8-FD.

      Thanks!

      --Scott


        • 1. Re: ejbActivate signature error
          wolfc

          Try removing the 'throws EJBException' on all methods.

          Does that work out?

          • 2. Re: ejbActivate signature error
            sbalmos

            ya, thanks.

            That's going to be odd to remember, since I work in IDEA. And IDEA adds the throws clauses to the signature whenever you implement the SessionBean interface. I know we don't have to do that with EJB3 annotations. But it's still something to remember if we're working the "old-fashioned" way. ;)