Java Objects can communicate with CORBA objects and vice versa. When you want a java program to talk to a CORBA object, use JavaIDL and when you want CORBA objects to talk to Java Objects, use the ubiquitous EJB.

Some interesting stuff I found in:http://java.sun.com/j2se/1.3/docs/guide/idl/jidlFAQ.html#java idl vs rmi-iiop Java IDL Vs. RMI-IIOP 1. Java IDL! If you have been developing CORBA applications using IDL for some time, you will probably want to stay in this environment. Create the interfaces using IDL, and define the client and server applications using the Java programming language to take advantage of its "Write Once, Run AnywhereTM" portability, its highly productive implementation environment, and its very robust platform.

2. RMI-JRMP! If all of your applications are written in the Java programming language, you will probably want to use Java RMI to enable communication between Java objects on different virtual machines and different physical machines. Using Java RMI without its IIOP option leverages its strengths of code portability, security, and garbage collection. 3. RMI-IIOP! If you are writing most of your new applications using the Java programming language, but need to maintain legacy applications written in other programming languages as well, you will probably want to use Java RMI with its IIOP compiler option.