[omniORB] JavaIDL and OmniORB

aseduto@excite.com aseduto@excite.com
Mon, 28 Aug 2000 09:24:03 -0700 (PDT)


Hi Everybody:

I am trying to use OmniOrb as Server and JavaIDL as Client. Looking at the
archive of this mailing list it seem it is possible.
Unfortunately up to now I have been unsuccessful.

I always get the same errors from the java client. I am trying to comunicate
with the echo server example.

java.lang.ArrayIndexOutOfBoundsException
        at
com.sun.corba.se.internal.util.Utility.bytesToInt(Utility.java:1032)
        at
com.sun.corba.se.internal.iiop.CDRInputStream.read_Object(CDRInputStream.java:600)
        at
com.sun.corba.se.internal.iiop.CDRInputStream.read_Object(CDRInputStream.java:572)
        at
com.sun.corba.se.internal.corba.InitialNamingClient.resolve(InitialNamingClient.java:209)
        at
com.sun.corba.se.internal.corba.InitialNamingClient.cachedInitialReferences(InitialNamingClient.java:265)
        at
com.sun.corba.se.internal.corba.InitialNamingClient.resolve_initial_references(InitialNamingClient.java:188)
        at
com.sun.corba.se.internal.corba.ORB.resolve_initial_references(ORB.java:1393)
        at NameClientList.main(NameClientList.java:22)

This is the java code at line 22 that generate the error:

orb.resolve_initial_references("NameService") 

I know the setting for the port are correct since if I change them I get a
CORBA.COMM_FAILURE error.

Any help would be greatly appreciated.

Alessandro




This is the java code.



import Echo.*;           // The package containing our stubs.
import org.omg.CosNaming.*;  // HelloClient will use the naming service.
import org.omg.CORBA.*;      // All CORBA applications need these classes.
import org.omg.CORBA.ORB.*;
import java.util.*;

public class EchoClient
{
    public static void main(String args[])
    {
        EchoClient t = new EchoClient();
            t.t(args);
    }
    
    void t(String args[]){
        try{ 
                org.omg.CORBA.Object object;
                java.util.Properties props = new java.util.Properties(); 
                props.put("org.omg.CORBA.ORBInitialHost", "surraa"); 
                props.put("org.omg.CORBA.ORBInitialPort", "2090"); 


                ORB orb = ORB.init(args, props); 

                System.err.println("Searching For the NamingService"); 


                try { 
                        object =
orb.resolve_initial_references("NameService"); 
                } 
                catch ( org.omg.CORBA.ORBPackage.InvalidName e) { 
                   
System.err.println("org.omg.CORBA.ORBPackage.InvalidName"); 
                    return;
                } 

                System.err.println("NamingService Found"); 


                NamingContext root = NamingContextHelper.narrow(object); 

                // Resolve the object reference in naming
                //NameComponent nc = new NameComponent("test",
"my_context");
                //NameComponent nc2 = new NameComponent("Echo", "Object");
                //NameComponent dspname[] = {nc, nc2}; 
                NameComponent dspname[] = new NameComponent[2];
                dspname[0] = new NameComponent("test", "my_context");
                dspname[1] = new NameComponent("Echo", "Object");
                 

                System.err.println("Resolving..."); 


                try { 
                    object = root.resolve(dspname); 
                } 
                catch (org.omg.CosNaming.NamingContextPackage.NotFound e) { 
                    System.err.println("NotFound"); 
                } 
                catch (org.omg.CosNaming.NamingContextPackage.CannotProceed
e) { 
                    System.err.println("CannotProceed"); 
                } 
                catch (org.omg.CosNaming.NamingContextPackage.InvalidName e)
{ 
                        System.err.println("InvalidName"); 
                } 


                System.err.println("Dispatcher Name resolved"); 
                 //dsp = Base.DispatcherHelper.narrow(object); 
                Echo helloRef = EchoHelper.narrow(object);

            // Call the Hello server object and print results
            String hello = helloRef.echoString("Alessandro");
            System.out.println(hello);

        } catch(Exception e) {
            System.out.println("ERROR : " + e);
            e.printStackTrace(System.out);
            
        }
    }
}







_______________________________________________________
Say Bye to Slow Internet!
http://www.home.com/xinbox/signup.html