Details
-
Patch
-
Resolution: Won't Do
-
Major
-
None
-
None
-
None
-
None
Description
Natively, you cannot use a JVM 1.4 client to call JBoss EJB3. This is because the jboss-ejb3.jar is compiled with JDK 1.5 : using it in a 1.4 JVM gives errors on major/minor version.
So I used jbossretro to convert this jar in jdk 1.4 compatible format.
That gave me a jar that works in my jvm 1.4 client (see attached file, to be used with JBoss 4.0.3SP1 + EJB3 RC6)
In order to use it, you also need to create a client jar for your EJBs, compiled with a 1.4 target. At compile time, you'll probably need to remove some annotations (@Local, @Remote etc). Thus, you need on the client side :
- the client jar for your EJBs
- the generated jboss-ejb3-client14.jar
- jbossretro-rt.jar
- jboss-backport-concurrent.jar
- javassist.jar
I tested that on JBoss 4.0.3SP1+EJB3 RC6, with Session Stateless Beans only.
I attach a patch for the current version of ejb3/build.xml, that generates the jboss-ejb3-client14.jar for the current version. I could not test this version, because I only use JBoss 4.0.3SP1, that doesn't support it.
I also attach the jboss-ejb3-client14.jar that works with EJB3 RC6 and JBoss 4.0.3SP1. I generated it with another ant script (also attached), that does this :
- uncompress the file jboss-ejb3.jar
- delete all files that are not included in jboss-ejb3-client.jar (based on the list of current ejb3/build.xml)
- run jbossretro on the classes, using the jboss 4.0.3SP1 libraries on the classpath
- recompress the jar
This ant script should probably let you convert the jar of other versions of JBoss & EJB3.