[omniORB] Using a corbaloc URI (JacORB client, omniORB server)

Rob Eger reger@txcorp.com
Thu Sep 5 19:58:00 2002


This seems like it should be simple, but I can't make it work.  What
I've got is a simple "hello world" type application with a JacORB client
and an omniORB server.  When I try to connect to the server using a
corbaloc I get an org.omg.CORBA.OBJECT_NOT_EXIST error.  I've tried
every possibility for the object key portion (which is where I suspect
the problem is), but nothing has worked.  Everything works fine if I use
the IOR, and also works using omniMapper.  Code snippets are below:

SERVER:

  CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
  PortableServer::POA_var rootPOA = PortableServer::POA::_narrow(obj);

  HelloDemoImpl* di = new HelloDemoImpl();

  PortableServer::ServantBase_var servant = di;
  PortableServer::ObjectId_var diid = rootPOA->activate_object(di);

-----------------------

CLIENT:

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

  org.omg.CORBA.Object obj =
orb.string_to_object("corbaloc::myhost.mycompany.com:39537/HelloDemo");

  HelloDemo hDemo = HelloDemoHelper.narrow(obj);

-----------------------

It fails on the narrow call.  Here is the output from the server running
with traceLevel of 30:

omniORB: Server accepted connection from giop:tcp:192.168.0.111:39559
omniORB: AsyncInvoker: thread id = 2 has started. Total threads = 3
omniORB: AsyncInvoker: thread id = 3 has started. Total threads = 3
omniORB: Accepted connection from giop:tcp:192.168.0.111:39559 because
of this rule: "* unix,ssl,tcp"
omniORB: inputMessage: from giop:tcp:192.168.0.111:39559 87 bytes
4749 4f50 0100 0000 0000 004b 0000 0000 GIOP.......K....
0000 0000 0100 0000 0000 0009 4865 6c6c ............Hell
6f44 656d 6f00 0000 0000 0006 5f69 735f oDemo......._is_
6100 0000 0000 0000 0000 001b 4944 4c3a a...........IDL:
6a61 6348 656c 6c6f 2f48 656c 6c6f 4465 jacHello/HelloDe
6d6f 3a31 2e30 00                       mo:1.0.
omniORB: throw OBJECT_NOT_EXIST from GIOP_S.cc:315
(NO,OBJECT_NOT_EXIST_NoMatch)
omniORB: sendChunk: to giop:tcp:192.168.0.111:39559 76 bytes
4749 4f50 0100 0101 4000 0000 0000 0000 GIOP....@.......
0000 0000 0200 0000 2700 0000 4944 4c3a ........'...IDL:
6f6d 672e 6f72 672f 434f 5242 412f 4f42 omg.org/CORBA/OB
4a45 4354 5f4e 4f54 5f45 5849 5354 3a31 JECT_NOT_EXIST:1
2e30 0040 0100 4d4f 0100 0000           .0.@..MO....
omniORB: throw giopStream::CommFailure from
giopStream.cc:812(0,NO,COMM_FAILURE_UnMarshalArguments)


Any ideas?

Thanks,
Rob Eger
Tech-X Corporation
Boulder, CO