我使用带有 boost.serialization 的 RCF(当我们已经使用原始版本时,为什么还要使用 RCF 的副本?)它工作正常,但是当服务器中抛出异常时,它没有正确传递给客户端。相反,我得到一个 RCF::SerializationException 引用archive_exception
“类名太长”的说法。当我将协议更改为 BsText 时,例外是“未注册的类”。当我将协议更改为 SfBinary 时,它可以工作。我已经在服务器和客户端上注册了 RemoteException,如下所示:
BOOST_CLASS_VERSION(RCF::RemoteException, 0)
BOOST_CLASS_EXPORT(RCF::RemoteException)
我什至尝试boost::shared_ptr<RCF::RemoteException>
在同一个测试中对 a 进行序列化和反序列化,并且它有效。
那么如何在不求助于 SF 的情况下正确地使 RCF 传递异常呢?