0 Replies Latest reply on Mar 1, 2013 9:32 AM by Mike Miller

    Backward compatibility - IllegalStateException: Failed to find method for hash:6087666598386677791

    Mike Miller Newbie

      JBoss 4.2.3.GA

       

      We are working on a migration to EJB3 and working on the backward compatibility.   We have a server that is running with our SessionBeans that have been migrated to EJB 3.0.   We need to support cases where this server makes service calls on SessionBeans in a different server, that is running basically the same code, but on EJB 2.1.   I have tried a few things but seem to be getting stuck with the this issue of not finding the correct method.

       

      I tried:

      1. Using the RemoteHome and RemoteHomeBinding in my session bean with a Home interface defined in the 3.0 server instance.  I had to create an alternate call to our service locator to handle getting the home interface and calling create(), that all seems to be working okay.   When we actually try to call the remote method on the service retrieved from JNDI is when we get the current error.
      2. This error occurance below comes from trying the removal of the RemoteHome and RemoteHomeBinding annotations from our 3.0 session bean and also deleted the Home interface in the 3.0 server instance.   To prevent the ClassNotFoundErrors for the home class on the 3.0 server, I have created a jar with the Home interface from the 2.1 server instance, signed it and placed that in our ear folder and referenced that jar in the application.xml.   Still same exception!

       

      I believe this an instance of the 3.0 to 2.1 backward compatibility scenario but I can't seem to get it working.  We are not touching the 2.1 server instance.   Most of the examples I have found seem to be of beans co-existing on the same server instance, which allows for the use of the @EJB annotations to help.   We can't do that because we are in a session bean on one server and retrieving a 2.1 service from a remote server, so we use JNDI, which seems to be working.

       

      Any ideas what I am missing?  Suggestions?

       

       

      ERROR [root] Caught exception while trying to repoll : java.lang.IllegalStateException: Failed to find method for hash:6087666598386677791 available={8594593460157411074=public abstract javax.ejb.EJBObject javax.ejb.Handle.getEJBObject() throws java.rmi.RemoteException, 7415355246179212884=public abstract boolean javax.ejb.EJBObject.isIdentical(javax.ejb.EJBObject) throws java.rmi.RemoteException, 8600444116638585484=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.addProcess(int,com.jda.portfolio.infrastructure.base.process.AbstractProcess) throws java.rmi.RemoteException, 3176383116050142106=public abstract boolean com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.isEODRunning() throws java.rmi.RemoteException, 3459013104155209360=public abstract int com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.getRunningProcessStatus() throws java.rmi.RemoteException, 8023408628542931870=public abstract java.util.ArrayList com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.loadChecks(boolean) throws java.rmi.RemoteException, -1324426544258457612=public abstract boolean com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.isUpdateEODPrefs() throws java.rmi.RemoteException, -1225864925247205563=public abstract void javax.ejb.EJBObject.remove() throws java.rmi.RemoteException,javax.ejb.RemoveException, -3430023375606625937=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.setCheckProcesses(java.util.ArrayList) throws java.rmi.RemoteException, 8981122088959051067=public abstract javax.ejb.HomeHandle javax.ejb.EJBHome.getHomeHandle() throws java.rmi.RemoteException, -4899641156120081774=public abstract boolean com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.runCentralForceDownload(java.lang.String) throws java.rmi.RemoteException, -3278682204038307545=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.setUpdateEODPrefs(boolean) throws java.rmi.RemoteException, -7940001347631500920=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.stopChecks() throws java.rmi.RemoteException, 6790693439931590569=public abstract com.jda.portfolio.infrastructure.base.controller.ProcessMonitor com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.getProcessMonitor() throws java.rmi.RemoteException, 8264013315949344562=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.setChecksCompleted(boolean) throws java.rmi.RemoteException, -7421716371264175145=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.runProcessesSequentially() throws java.rmi.RemoteException, 8536179260875325978=public abstract com.jda.portfolio.infrastructure.base.process.AbstractProcess com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.getRunningProcess() throws java.rmi.RemoteException, -5269460829974437302=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.addPropertyChangeListener(java.beans.PropertyChangeListener) throws java.rmi.RemoteException, -883843542736932254=public abstract java.lang.Object javax.ejb.EJBObject.getPrimaryKey() throws java.rmi.RemoteException, -2590129623172426220=public abstract boolean com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.isChecksCompleted() throws java.rmi.RemoteException, 4121927297169232143=public abstract void javax.ejb.EJBHome.remove(javax.ejb.Handle) throws java.rmi.RemoteException,javax.ejb.RemoveException, -3260590760910195779=public abstract javax.ejb.Handle javax.ejb.EJBObject.getHandle() throws java.rmi.RemoteException, 1023555753582321414=public abstract java.util.Date com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.getBusinessDate() throws java.rmi.RemoteException, 6379407847924920184=public abstract boolean com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.isProcessMonitorFinished() throws java.rmi.RemoteException, 1989880768363748471=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.runCentralProcessesSequentially() throws java.rmi.RemoteException, -107499859717975299=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.setEODRunning(boolean) throws java.rmi.RemoteException, 1198857148195425150=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.setProcesses(java.util.ArrayList) throws java.rmi.RemoteException, -7423251857241384719=public abstract void javax.ejb.EJBHome.remove(java.lang.Object) throws java.rmi.RemoteException,javax.ejb.RemoveException, 3603204012067117518=public abstract com.jda.portfolio.infrastructure.base.controller.AbstractProcessController com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.getProcessController() throws java.rmi.RemoteException, -1784489294664631537=public abstract java.beans.PropertyChangeListener com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.getStatusChangeListener() throws java.rmi.RemoteException, 5313134895258323668=public abstract boolean com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.runCentralRepoll(java.util.ArrayList,java.util.Date) throws java.rmi.RemoteException, 4587012503417889761=public abstract boolean com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.getProcessMonitorFailed() throws java.rmi.RemoteException, 4512095171315154818=public abstract javax.ejb.EJBHome javax.ejb.EJBObject.getEJBHome() throws java.rmi.RemoteException, -523296331097319625=public abstract java.util.ArrayList com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.getCheckProcesses() throws java.rmi.RemoteException, 7322075118954587029=public abstract com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessServiceHome.create() throws javax.ejb.CreateException,java.rmi.RemoteException, -2772317058699513373=public abstract java.util.ArrayList com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.getOverRidenChecks() throws java.rmi.RemoteException, 1795143354224526549=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.setCanceled(boolean) throws java.rmi.RemoteException, -7385696591418600868=public abstract java.util.ArrayList com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.getProcesses() throws java.rmi.RemoteException, 2056663019065401382=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.clean() throws java.rmi.RemoteException, -4990788526596460909=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.setOverRidenChecks(java.util.ArrayList) throws java.rmi.RemoteException, 4342811972915933694=public abstract java.util.ArrayList com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.loadChecks() throws java.rmi.RemoteException, -4378986748400941033=public abstract void com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.createEODMarkerTransaction() throws java.rmi.RemoteException, -8558958223302123381=public abstract boolean com.jda.portfolio.infrastructure.server.service.eod.EndOfDayProcessService.isCanceled() throws java.rmi.RemoteException, 3781219857755091396=public abstract javax.ejb.EJBMetaData javax.ejb.EJBHome.getEJBMetaData() throws java.rmi.RemoteException}

        at org.jboss.invocation.MarshalledInvocation.getMethod(MarshalledInvocation.java:407)

        at org.jboss.ejb.Container.invoke(Container.java:958)

        at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:601)

        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.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:818)

        at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:419)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:601)

        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)

        at sun.rmi.transport.Transport$1.run(Transport.java:177)

        at sun.rmi.transport.Transport$1.run(Transport.java:174)

        at java.security.AccessController.doPrivileged(Native Method)

        at sun.rmi.transport.Transport.serviceCall(Transport.java:173)

        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)

        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)

        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

        at java.lang.Thread.run(Thread.java:722)

        at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273)

        at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251)

        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:160)

        at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Source)

        at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:133)

        at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:365)

        at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:197)

        at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)

        at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)

        at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112)

        at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)

        at $Proxy1076.runCentralRepoll(Unknown Source)

        at com.jda.portfolio.cos.server.service.repoll.CentralRepollInvoker$TimerThread.run(CentralRepollInvoker.java:351)