Just wanted to clarify something with you guys. EJBs from different application servers uses RMI to communicate with each other right? through IIOP. CORBA on the other hand is a standard used to share objects between programs written in different languages.
now, we havwe an application that uses ejbs to communicate with other ejbs from other application servers. It does this using RMI. If that is the case, why do we have these kinds of exception?
java.rmi.MarshalException: CORBA MARSHAL 0x4942f89a No; nested exception is:
org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : Mismatched serialization UIDs : Source (Rep. IDRMI:java.util.HashMap:86573568A211C011:0507DAC1C31660D1) = 0507DAC1C31660D1 whereas Target (Rep. ID
org.omg.CORBA.UNKNOWN: ZIP004:OutOfMemoryError, MEM_ERROR in inflateInit2 minor code: 0 completed: Maybe
at com.ibm.rmi.iiop.ServerResponseImpl.intercept(ServerResponseImpl.java(Compiled Code))
at com.ibm.rmi.iiop.ServerResponseImpl.<init>(ServerResponseImpl.java(Compiled Code))
If a java client app uses RMI to communicate with other EJBs from different jvms, why do these exceptions have anything to do with CORBA? Does this mean ejb also uses CORBA to communicate? I'm a little confused here. Can anyone enlighten me?