Skip to Main Content

New to Java

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Why are there CORBA error messages -- COMM_FAILURE when using the orb obj?

822890Dec 10 2010 — edited Dec 17 2010
Hi Guys,
I followed the tutorial http://download.oracle.com/javase/6/docs/technotes/guides/idl/GShome.html
compiled and run the code. Everything works fine however whenever I use the ORB orb object I get the following message
both in my Naming Service and the HelloServer output:

2010-12-10 12:35:46.505 FINE Transport to 127.0.1.1:44100: stream closed on read < 0
2010-12-10 12:35:46.506 FINE ServerGIOPConnection to 127.0.1.1:44100 (ec4a87): getMessage() -- COMM_FAILURE
2010-12-10 12:35:46.507 FINE ServerGIOPConnection to 127.0.1.1:44100 (ec4a87): streamClosed()
2010-12-10 12:35:46.508 FINE ServerGIOPConnection to 127.0.1.1:44100 (ec4a87): close()

Why is this happening?

I have also installed jacorb and added it to my class path and run the examples with:
jaco -Djacorb.config.dir=. -DORBid=HelloClient HelloServer
ns -Djacorb.naming.ior_filename=/home/zorg/Project/Java/CORBA/NameService/NS_Ref
jaco -Djacorb.config.dir=. -DORBid=HelloClient HelloClient


I have included the code from the tutorial for convinience:
// HelloServer.java
// Copyright and License 
import HelloApp.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
import org.omg.PortableServer.POA;

import java.util.Properties;

class HelloImpl extends HelloPOA {
  private ORB orb;

  public void setORB(ORB orb_val) {
    orb = orb_val; 
  }
    
  // implement sayHello() method
  public String sayHello() {
    return "\nHello world !!\n";
  }
    
  // implement shutdown() method
  public void shutdown() {
    orb.shutdown(false);
  }
}


public class HelloServer {

  public static void main(String args[]) {
    try{
      // create and initialize the ORB
      ORB orb = ORB.init(args, null);

      // get reference to rootpoa & activate the POAManager
      POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
      rootpoa.the_POAManager().activate();

      // create servant and register it with the ORB
      HelloImpl helloImpl = new HelloImpl();
      helloImpl.setORB(orb); 

      // get object reference from the servant
      org.omg.CORBA.Object ref = rootpoa.servant_to_reference(helloImpl);
      Hello href = HelloHelper.narrow(ref);
          
      // get the root naming context
      org.omg.CORBA.Object objRef =
          orb.resolve_initial_references("NameService");
      // Use NamingContextExt which is part of the Interoperable
      // Naming Service (INS) specification.
      NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

      // bind the Object Reference in Naming
      String name = "Hello";
      NameComponent path[] = ncRef.to_name( name );
      ncRef.rebind(path, href);

      System.out.println("HelloServer ready and waiting ...");

      // wait for invocations from clients
      orb.run();
    } 
        
      catch (Exception e) {
        System.err.println("ERROR: " + e);
        e.printStackTrace(System.out);
      }
          
      System.out.println("HelloServer Exiting ...");
        
  }
}
// Copyright and License 
import HelloApp.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;

public class HelloClient
{
  static Hello helloImpl;

  public static void main(String args[])
    {
      try{
        // create and initialize the ORB
        ORB orb = ORB.init(args, null);

        // get the root naming context
        org.omg.CORBA.Object objRef = 
            orb.resolve_initial_references("NameService");
        // Use NamingContextExt instead of NamingContext. This is 
        // part of the Interoperable naming Service.  
        NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
 
        // resolve the Object Reference in Naming
        String name = "Hello";
        helloImpl = HelloHelper.narrow(ncRef.resolve_str(name));

        System.out.println("Obtained a handle on server object: " + helloImpl);
        System.out.println(helloImpl.sayHello());
        helloImpl.shutdown();

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

}
Edited by: 819887 on 10-Dec-2010 04:51

Edited by: 819887 on 10-Dec-2010 04:58
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 14 2011
Added on Dec 10 2010
3 comments
830 views