Closed duansumin2022 closed 9 months ago
好像是没创建Communicator
好像是没创建Communicator
通过 new tars::Communicator(); 创建的Communicator,然后把_comm 传给sdkAgent,在sdkAgent的init里面,通过_comm创建SDKServantPrx:
tars::Communicator* _comm = new tars::Communicator();
if(_comm == NULL)
return;
....
LocalRollLogger::getInstance()->setLogInfo("S000", app, logpath);
LocalRollLogger::getInstance()->logger()->setLogLevel(logLevel);
sdkAgent = new SDKAgent ();
sdkAgent ->init(_comm);
SDKAgent ::init函数:
int SDKAgent ::init(Communicator* comm){
...
comm->stringToProxy(serverObjName , prx); // typedef tars::TC_AutoPtr<SDKServantProxy> SDKServantPrx;
...
}
是不是Communicator使用的方式,或者prx服务句柄的获取方式不对呢?
typedef tars::TC_AutoPtr<SDKServant***> SDKServantPrx;应该这样吧
typedef tars::TC_AutoPtr<SDKServant***> SDKServantPrx;应该这样吧
typedef tars::TC_AutoPtr<SDKServantProxy>SDKServantPrx;
是这样的,上一条好像没有显示出来。
最新版已经修复了吧?用最新版本试一试
最新版已经修复了吧?用最新版本试一试
您好,这是什么问题,有修复记录吗?生产环境也用的是这个版本
应该是最新的tag版本才发现和修复这个问题
3b90fd8 应该是这个修改的
是这个问题
TARS_VERSION: 3.0.1
client rpc调用的时候抛出异常(非必现异常,偶发异常):Exception: autoptr null handle error![N4tars12CommunicatorE] 业务prx rpc调用抛异常