[omniORB] Java client connect to OmniORB 4 server, error...

Marcus MacWilliam marcusma@lsl.co.uk
Tue Sep 10 09:20:01 2002


Rainer Frohnhoefer wrote:

> Am Montag, 09.09.02 um 19:08 Uhr schrieb Marcus MacWilliam:
> [snip]
>
>      CORBA initialisation exception: org.omg.CORBA.INV_OBJREF:   minor code: 1398079490  completed: No
>      org.omg.CORBA.INV_OBJREF:   minor code: 1398079490  completed: No
>              at com.sun.corba.se.internal.core.CodeSetComponentInfo.read(CodeSetComponentInfo.java:90)
>              at com.sun.corba.se.internal.core.Profile.<init>(Profile.java:109)
>              at com.sun.corba.se.internal.core.IOR.getProfile(IOR.java:273)
>              at com.sun.corba.se.internal.iiop.CDRInputStream.read_Object(CDRInputStream.java:591)
>              at com.sun.corba.se.internal.iiop.CDRInputStream.read_Object(CDRInputStream.java:577)
>              at com.sun.corba.se.internal.corba.ORB.string_to_object(ORB.java:1070)
>              at OoApiTest.getCORBAObject(OoApiTest.java:6853)
>              at OoApiTest.main(OoApiTest.java:11054)
>
>      Does anyone know why this has started happening. This code has worked
>      with the following before:
>
>      Client               Server
>      ------               ------
>      JDK 1.2    and VisiBroker v3.3.3.
>      JDK 1.2.2 and VisiBroker v3.3.4.
>      JDK 1.3.1 and OmniORB v3.0.4.
>      JDK 1.3.1 and OmniORB v3.0.5.
>
>      Does OmniORB v4.0.b2 write the IOR in a completely different format? It is
>      currently writing out the following:
>
>      IOR:000000000000002449444c3a676f746869632f636f7265782f476f7468696344617461626173653a312e3000000000010000000000000070000102000000000d3139322e3136382e36302e3
>      30000a1ec00000019ff6f6f2d746f6f6c6b6974fe3d7cd1229312000100000000000000000000000200000000000000080000000041545400000000010000001c00000000000100010000000105
>      010001000101090000000100010109
>
> It's not the IOR's fault, or, at least, only partially. IIRC, the Java ORBs prior to version 1.4 had trouble handling IORs with embeded codeset info. It's been a while since I ran into this problem, but I think omniRB3 uses IIOP1.0 which doesn't have codeset info. omniORB4 'speaks' the newer version of the protocol. The rather brittle ORB that comes with JRE1.[23].x pretends to understand IIOP1.1 while he really doesn't and then chokes on the IOR.
>
> Can you upgrade to another ORB? Else, there might be an option in omniORB4 to switch back to IIOP1.0, which might help.
>
> If the above explanation was nonsense, forgive me. I ran into that problem some time ago, switched ORBs and happily forgot everythig about it :)
>
> Regards,
> Rainer.

Upgrading to J2SE (SDK) v1.4.0_02, solved the problem.

Thanks all,


--
 Marcus A.T MacWilliam, MSc, CEng, MBCS, BSc(Hons).
 Senior Software Engineer, Laser-Scan Ltd, Cambridge, CB4 0FY.
 Tel: +44 (0)1223 420414 x213. Mobile: +44 (0)7803 706597.
 TravelM8: 09050 505050 (http://www.travelm8.com)