Tried your solutions and it stil fails, now with ClassNotFoundException for JBoss5EJB.
Not sure, but it looks like because it runs in total isolation from all application classes it can't find anything except of explicitly specified jbossall-client.jar.
Should I specify all my jars (and their dependencies jars) the same way as jbossall-client.jar - as a parameters to the custom URLClassLoader?
Here is and exception:
12:56:56,192 ERROR [STDERR] Caused by: java.lang.ClassNotFoundException: tu.venture.customer.api.service.JBoss5EJB
12:56:56,192 ERROR [STDERR] at org.jboss.remoting.serialization.ClassLoaderUtility.loadClass(ClassLoaderUtility.java:103)
12:56:56,192 ERROR [STDERR] at org.jboss.remoting.loading.RemotingClassLoader.loadClass(RemotingClassLoader.java:86)
12:56:56,192 ERROR [STDERR] at java.lang.Class.forName0(Native Method)
12:56:56,192 ERROR [STDERR] at java.lang.Class.forName(Class.java:247)
12:56:56,192 ERROR [STDERR] at org.jboss.remoting.loading.ObjectInputStreamWithClassLoader.resolveProxyClass(ObjectInputStreamWithClassLoader.java:253)
12:56:56,192 ERROR [STDERR] at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1531)
12:56:56,192 ERROR [STDERR] at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1493)
12:56:56,192 ERROR [STDERR] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
12:56:56,192 ERROR [STDERR] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
12:56:56,192 ERROR [STDERR] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
12:56:56,192 ERROR [STDERR] at org.jboss.aop.joinpoint.InvocationResponse.readExternal(InvocationResponse.java:119)
12:56:56,192 ERROR [STDERR] at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
12:56:56,192 ERROR [STDERR] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
12:56:56,192 ERROR [STDERR] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
12:56:56,192 ERROR [STDERR] at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
12:56:56,192 ERROR [STDERR] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
12:56:56,192 ERROR [STDERR] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
12:56:56,192 ERROR [STDERR] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
12:56:56,192 ERROR [STDERR] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
12:56:56,192 ERROR [STDERR] at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObjectVersion2_2(JavaSerializationManager.java:238)
12:56:56,192 ERROR [STDERR] at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:138)
12:56:56,192 ERROR [STDERR] at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:123)
12:56:56,192 ERROR [STDERR] at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedRead(MicroSocketClientInvoker.java:1220)
12:56:56,192 ERROR [STDERR] at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:850)
12:56:56,192 ERROR [STDERR] at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:165)
12:56:56,192 ERROR [STDERR] at org.jboss.remoting.Client.invoke(Client.java:1724)
12:56:56,192 ERROR [STDERR] at org.jboss.remoting.Client.invoke(Client.java:629)
12:56:56,192 ERROR [STDERR] at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60)
12:56:56,192 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
12:56:56,192 ERROR [STDERR] at org.jboss.ejb3.proxy.impl.remoting.IsLocalProxyFactoryInterceptor.invoke(IsLocalProxyFactoryInterceptor.java:72)
12:56:56,192 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
12:56:56,192 ERROR [STDERR] at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
12:56:56,207 ERROR [STDERR] at $Proxy242.createProxyBusiness(Unknown Source)
12:56:56,207 ERROR [STDERR] at org.jboss.ejb3.proxy.impl.objectfactory.session.SessionProxyObjectFactory.createProxy(SessionProxyObjectFactory.java:129)
12:56:56,207 ERROR [STDERR] at org.jboss.ejb3.proxy.impl.objectfactory.session.stateless.StatelessSessionProxyObjectFactory.getProxy(StatelessSessionProxyObjectFactory.java:79)
12:56:56,207 ERROR [STDERR] at org.jboss.ejb3.proxy.impl.objectfactory.ProxyObjectFactory.getObjectInstance(ProxyObjectFactory.java:158)
12:56:56,207 ERROR [STDERR] at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
12:56:56,207 ERROR [STDERR] at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1479)
12:56:56,207 ERROR [STDERR] at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1496)
12:56:56,207 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:822)
12:56:56,207 ERROR [STDERR] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
12:56:56,207 ERROR [STDERR] at javax.naming.InitialContext.lookup(InitialContext.java:392)
12:56:56,207 ERROR [STDERR] at tu.controller.JBoss6Component.callMethod(JBoss6Component.java:60)
#################################################################
Update: Altough it looks like a perfectly designed nighmare to deploy and maintain, I decided to give it a shot and included the jar with JBoss5EJB interface into the classpath for the custom URLClassLoader, but unfortunately it still fails (ClassCastException for now) on this line:
JBoss5EJB bean = (JBoss5EJB)context.lookup(JBoss5EJB.REMOTE_NAME);
Caused by: java.lang.ClassCastException: $Proxy244 cannot be cast to tu.venture.customer.api.service.JBoss5EJB
at tu.controller.JBoss6Component.callMethod(JBoss6Component.java:63)
Is there anything else I can try to make the basic EJB3 call working between two JBoss servers? I'm totally stuck now