I have one WLS51 and one WLS61 running on two different machines. An EJB in the WLS51 should call an EJB in the WLS61. Is that possible? I did not find a way to get it work and I think there is no way.
The problem is: the WLS51-EJB must use the INITIAL_CONTEXT_FACTORY of WLS61 to connect to WLS61. But for both versions this is the same. So, either the WLS51-EJB uses the WLS51 context factory (which does not work with WLS61) or the WLS51 will not start at all if I put the WLS61 classes in its PRE_CLASSPATH.
I think it is the major problem faced by BEAs old customers. You can’t connect from WL5.1 to WL6.1; it is not due to the JNDI INITIAL_CONTEXT_FACTORY. BEA has changed the underlying T3 protocol implementation to support IIOPs and this implementation is not backward compatible.
I asked the BEA Support: They confirmed that the T3 protocol changed so that is does not allow connections between WLS 5.1 and WLS 6.1. They suggested to try with RMI over IIOP instead of T3.
I tried it and it works! The WLS 5.1 has to connect via iiop://hostname:7001, needs another context factory (see BEA documentation), and need the IIOP stub classes of the WLS 6.1 EJBs in the WLS 5.1 deployment unit.