icestorm 莫名其妙的一个错误Ice:ConnectionRefusedException
icestorm 莫名其妙的一个异常Ice::ConnectionRefusedException!
本帖最后由 VisualEleven 于 2011-05-18 16:14:53 编辑 在实现发布订阅时:
单步运行到这一步后,IceStorm::TopicManagerPrx topicManager =IceStorm::TopicManagerPrx::checkedCast(obj);
报异常,内容为:
exe 中的 0x7c812afb 处未处理的异常: Microsoft C++ 异常: 内存位置 0x0012eac4 处的 Ice::ConnectionRefusedException。
这一步的主要工作是检查,
Ice::ObjectPrx obj = communicator->stringToProxy("IceStorm/TopicManager:tcp -p 9999");
是否成功。
前面已经建立了obj,为什么老是报错呢??
折腾了好几天还是没搞懂为什么!!
令人无语。。。。。
请高手指教一下!万分感谢!
------解决方案--------------------
Ice::ObjectPrx obj = communicator->stringToProxy("IceStorm/TopicManager:tcp -p 9999");
这里返回obj有效?
------解决方案--------------------
这个。。。。。?
按理说应该没有问题的。。
这是icestorm的手册中一个实例。
我是照着抄上去的。
由于communicator省略了定义,。
我按照其他的例子,给它定义了一下,
Ice::CommunicatorPtr communicator;
communicator= Ice::initialize(argc, argv);
编译通过了。。。
没想到出现这个问题。
按照IceStorm::TopicManagerPrx::checkedCast(obj);应该是检查其是否创建成功。
这里我很不明白。。。为什么没有创建成功呢??
------解决方案--------------------
IceStorm 是一个相对较轻的服务,你要把你写的IceStorm作为IceBox的一个服务启动。
或者你要先启动IceBox服务,同时配置好IceStorm就可以启动了。
你看一下IceBox那章和IceStorm的配置。
------解决方案--------------------
谢谢。。。。。。。。。。。。
------解决方案--------------------
我也遇到 同样 问题,楼主你解决没有呢
本帖最后由 VisualEleven 于 2011-05-18 16:14:53 编辑 在实现发布订阅时:
#include <Ice/Ice.h>
#include <IceStorm/IceStorm.h>
#include <Monitor.h>
int main(int argc, char* argv[])
{
…
Ice::ObjectPrx obj = communicator->stringToProxy(
"IceStorm/TopicManager:tcp -p 9999");
IceStorm::TopicManagerPrx topicManager =
IceStorm::TopicManagerPrx::checkedCast(obj);
IceStorm::TopicPrx topic ;
while (!topic){
try {
topic = topicManager->retrieve("Weather");
} catch (const IceStorm::NoSuchTopic&){
Try{
topic = topicManager->create("Weather");
} catch (const IceStorm::TopicExists&){
// Another client created the topic }
}
}
Ice::ObjectPrx pub = topic->getPublisher()->ice_oneway();
MonitorPrx monitor = MonitorPrx::uncheckedCast(pub);
while (true) {
Measurement m = getMeasurement();
monitor->report(m);
}
单步运行到这一步后,IceStorm::TopicManagerPrx topicManager =IceStorm::TopicManagerPrx::checkedCast(obj);
报异常,内容为:
exe 中的 0x7c812afb 处未处理的异常: Microsoft C++ 异常: 内存位置 0x0012eac4 处的 Ice::ConnectionRefusedException。
这一步的主要工作是检查,
Ice::ObjectPrx obj = communicator->stringToProxy("IceStorm/TopicManager:tcp -p 9999");
是否成功。
前面已经建立了obj,为什么老是报错呢??
折腾了好几天还是没搞懂为什么!!
令人无语。。。。。
请高手指教一下!万分感谢!
------解决方案--------------------
Ice::ObjectPrx obj = communicator->stringToProxy("IceStorm/TopicManager:tcp -p 9999");
这里返回obj有效?
------解决方案--------------------
这个。。。。。?
按理说应该没有问题的。。
这是icestorm的手册中一个实例。
我是照着抄上去的。
由于communicator省略了定义,。
我按照其他的例子,给它定义了一下,
Ice::CommunicatorPtr communicator;
communicator= Ice::initialize(argc, argv);
编译通过了。。。
没想到出现这个问题。
按照IceStorm::TopicManagerPrx::checkedCast(obj);应该是检查其是否创建成功。
这里我很不明白。。。为什么没有创建成功呢??
------解决方案--------------------
IceStorm 是一个相对较轻的服务,你要把你写的IceStorm作为IceBox的一个服务启动。
或者你要先启动IceBox服务,同时配置好IceStorm就可以启动了。
你看一下IceBox那章和IceStorm的配置。
------解决方案--------------------
谢谢。。。。。。。。。。。。
------解决方案--------------------
我也遇到 同样 问题,楼主你解决没有呢