[omniORB] Naming across ORBS

David Riddoch djr@uk.research.att.com
Mon, 6 Sep 1999 13:50:34 +0100 (GMT)



Can you do a:

 catior <naming service stringified ior>

and let us know what the output is?


David



On Mon, 6 Sep 1999, David Hyde wrote:

> Hello,
> 
> I am trying to access an Expersoft CORBAplus written server from an OmniOrb
> client (on the same machine).  I've done it by passing the stringified
> reference to the object that I want to connect to into the client on the
> command line, but I can't seem to do it through the naming service.  Here's
> what I'm doing...
> 
> >From my server:
> 
> // Initialise the ORB
> orb = CORBA::ORB_init(Myargc, Myargv);
> 
> if (!CORBA::is_nil(orb))
> 
> // Initialise the BOA
> CORBA::BOA_ptr aboa = orb->BOA_init(Myargc, Myargv);
> XpsBOA * pboa = XpsBOA::_narrow(aboa);
> 
> if (!CORBA::is_nil(pboa))
> {
> 	 // resolve a reference to the NamingService
> 	CORBA::Object_ptr obj =
> orb->resolve_initial_references("NameService");
> 	if (!CORBA::is_nil(obj))
> 	{
> 		// narrow to a Naming Context
> 		CosNaming::NamingContext_ptr pNC =
> CosNaming::NamingContext::_narrow(obj);
> 
> 		if (!CORBA::is_nil(pNC))
> 		{
> 			CORBA::String_var p;
> 
> 			// Get the stringified Naming Service object and
> output it
> 			p = orb->object_to_string(pNC);
> 			cout << endl << "Stringified Naming Service object
> is:" << endl << (char*)p << endl << endl;
> 
> 
> The client looks like this:
> 
> CORBA::ORB_ptr orb = CORBA::ORB_init(argc,argv,"omniORB2");
> CORBA::BOA_ptr boa = orb->BOA_init(argc,argv,"omniORB2_BOA");
> 
> CORBA::Object_ptr obj = orb->resolve_initial_references("NameService");
> 
> if (!CORBA::is_nil(obj))
> {
> 	...
> 
> I place the string output by the server (including the "IOR:") into the
> registry, but when I run the client I get an immediate exception and:
> 
> 	Configuration error: Invalid object reference supplied for
> NAMESERVICE.
> 
> 
> I've even tried:
> 
> CORBA::Object_var ncObj = orb->string_to_object(argv[1]);
> CosNaming::NamingContext_var pNC = CosNaming::NamingContext::_narrow(ncObj);
> 
> whilst placing OmniORB's IOR into the registry.  _narrow then returns NULL.
> 
> 
> 
> As far as I can see what I want to do shouldn't be too difficult, so can
> anyone point me in the right direction please.
> 
> 
> Thanks very much
> 
> David Hyde
> 
> 
>