Hi all,

 

 

First, I am quite new to CORBA world. I work under Linux RedHat-3.0,
with MICO-2.3.11 and JacORB-2.3.3.

 

I was asked to make some MICO-compiled servers (that already work fine
under MICO ORB) to work under JacORB, for advanced testing. Now, my
servers register correctly to JacORB's NamingService, but I cannot use
correctly JacORB's ImR! 

 

So as to investigate more easily, I have tried to debug this problem on
localhost, using simpliest MICO clients. I ask them to resolve the
running (JacORB) NS and ImR. Following is the extract of my MICO client
code:

 

************************************************************************
*********************

      // Retrieve ORB

      CORBA::ORB_var orb= CORBA::ORB_init(argc, argv);

 

      // For more debugging, list active objects

      cout << "CPP: Listing all active CORBA objects:" << endl;

      CORBA::ORB::ObjectIdList_ptr objList=
orb->list_initial_services();

      if (objList)

            for(unsigned int i=0; i<objList->length(); i++)

              {

                CORBA::ORB::ObjectId id= (*objList)[i];

                cout << "CORBA Obj" << i+1 << ": " << id << endl;

              }

      cout << endl;

            

      // Retrieve NS's IOR

      CORBA::Object_var ns_obj=
orb->resolve_initial_references("NameService");

      CosNaming::NamingContext_var nc=
CosNaming::NamingContext::_narrow(ns_obj); 

      cout << "IOR for resolved NS= ";

      cout << orb->object_to_string(nc) << endl << endl;

 

      // Retrieve ImR's IOR

      CORBA::Object_var imr_obj=
orb->resolve_initial_references("ImplementationRepository");

      CORBA::ImplRepository_var imr=
CORBA::ImplRepository::_narrow(imr_obj); 

      cout << "IOR for resolved ImR= ";

      cout << orb->object_to_string(imr) << endl;

************************************************************************
*********************

 

And the client was launched with:

> /tmp/exe/Client -ORBInitRef
NameService=iioploc://localhost:$NS_PORT/NameService -ORBInitRef
ImplementationRepository=iioploc://localhost:$IMR_ENDPOINT/the_ImR/ImRPO
A/ImR

 

(For those who are familiar to JacORB's ImR, I am using an endpoint
which should requests to point at a defined port).

 

Now, the result of the execution of my client is coherent with my
initial server problem: I can retrieve NS IOR, but narrowing the ImR
fails!

Do you have any suggestion to explain this? I am using a wrong type as
return value for _narrow(imr_obj?)

 

 

Thanks a lot for your help!

Severin

_______________________________________________
Mico-devel mailing list
[email protected]
http://www.mico.org/mailman/listinfo/mico-devel

Reply via email to