I have a program , a corba program
the idl defination is as following
interface Hello
{
void say_hello():
}
i want the function as follows :
client->Server.say_hello and in say_hello, it connect to xmlblaster and subscribe to some topic
i program it following Externorb.cpp , transform the extern orb to kernel, but it seems that wrong
it think maybe the following kernerl function is wrong!! the while is wrong??
void CorbaConnection::createCallbackServer(POA_clientIdl::BlasterCallback *implObj)
{
if (implObj) {
if (log_.trace()) log_.trace(me(), "Trying resolve_initial_references ...");
CORBA::Object_var obj = orb_->resolve_initial_references("RootPOA");
if (log_.trace()) log_.trace(me(), "Trying narrowing POA ...");
poa_ = PortableServer::POA::_narrow(obj.in());
PortableServer::POAManager_var poa_mgr = poa_->the_POAManager();
// _this() incarnates with the servant ...
callback_ = implObj->_this();
CORBA::String_var tmp = orb_->object_to_string(callback_);
callbackIOR_ = tmp;
poa_mgr->activate();
while (orb_->work_pending()) orb_->perform_work();
return;
// add exception handling here !!!!!
}
return;
}
I trace into the kenrerl and find that it is the defaultCallbakcServer is not
activated , and the server side call its ping error.
Can somebody explain this error to me?
thanks !!
=============================================================
ÅÌÖг¬¼¶Ó¯Àû¾¡ÔÚÕÆÎÕ ÏíÊÜÀÉýµÄ¿ì¸Ð http://list.163.com/mlist/pzjg/pzjg.htm
°Ù·Ö°ÙÅ®ÓÑ - ´º¼¾Ñ¡ÃÀ»î¶¯! http://love.163.com
¸öÈË¿Õ¼äÃâ·ÑÊÔÓà http://www.nease.net