Invalid invocation EJBException on method invoke for create
hmj Oct 15, 2004 3:06 PMI'm using JBoss 3.2.3 and get an EJBException when trying to invoke the create method for a Remote EJB running in the same JBoss region but in a different ear. The same code works if the call to the Remote EJB is from a different JBoss region on the same or a different machine.
Any ideas anyone???
The exception happens on the last line of this code extract :-
...
...
Object objref = ic.lookup("jnp://myserver:namingport/jndiname");
Class classType = Class.forName("some.package.IMyClassRemoteHome");
Object obj = PortableRemoteObject.narrow(objref, classType);
EJBHome home = (EJBHome) obj;
Method method = homeObject.getClass().getMethod("create", null);
EJBObject ejbObject = (EJBObject) method.invoke(homeObject, null);
...
...The classes/interfaces are :-
public class MyClass implements IMyClass, SessionBean{
...
...
}
public interface IMyClass {
public void myMethod(long a, String b);
}
public interface IMyClassRemote extends EJBObject, IMyClass {
}
public interface IMyClassRemoteHome extends EJBHome {
IMyClassRemote create() throws RemoteException , CreateException;
}
The first part of the exception is :-
2004-10-15 10:26:50,198 ERROR [org.jboss.ejb.plugins.LogInterceptor] EJBException:
javax.ejb.EJBException: Invalid invocation, check your deployment packaging, method=public abstract some.package.IMyClassRemote some.package.IMyClassRemoteHome.create() throws java.rmi.RemoteException,javax.ejb.CreateException
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invokeHome(StatelessSessionContainer.java:632)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invokeHome(CachedConnectionInterceptor.java:205)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invokeHome(StatelessSessionInstanceInterceptor.java:51)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:88)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:320)
at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:98)
at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:92)
at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:120)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyFactoryFinderInterceptor.java:93)
at org.jboss.ejb.StatelessSessionContainer.internalInvokeHome(StatelessSessionContainer.java:319)
at org.jboss.ejb.Container.invoke(Container.java:720)
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:324)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:101)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:90)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:45)
at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:173)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
at $Proxy69.create(Unknown Source)
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:324)
at MyClass.locateService(MyClass.java:73)
...
...