gpt4 book ai didi

c++ - 在 Ubuntu 上启动 C++ CORBA 服务器时出现问题,CORBA::SystemException

转载 作者:太空宇宙 更新时间:2023-11-04 14:10:46 33 4
gpt4 key购买 nike

我正在尝试在 Ubuntu 12.04 上运行 C++ 中的 CORBA 示例: http://www.yolinux.com/TUTORIALS/CORBA.html

当我尝试运行时仍然有错误:

    $ ./Server
'IOR:010000001600000049444c3a446174612f53657276696365413a312e3000000001000000000000006800000001010200100000003139322e3136382e3135392e31323900b1aa00000e000000fe4ba4015100001a19000000000000000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100'
Caught CORBA::SystemException.

在启动服务器之前我生成了一个日志文件:

omniNames -start 2812 -logdir ~/Desktop -errlog ~/Desktop/omniNamesError.txt

这给了我一个文件 ~/Desktop/omniNamesError.txt,如下所示:

Thu Jan 24 22:54:34 2013:

Starting omniNames for the first time.
Wrote initial log file.
Read log file successfully.
Root context is IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e30000001000000000000007400000001010200100000003139322e3136382e3135392e31333000fd0a00000b0000004e616d6553657276696365000300000000000000080000000100000000545441010000001c0000000100000001000100010000000100010509010100010000000901010003545441080000009aad015101004982
Checkpointing Phase 1: Prepare.
Checkpointing Phase 2: Commit.
Checkpointing completed.

接下来我在文件中添加:

/etc/omniORB.cfg

生成文件中的行:

InitRef = NameService=IOR:000100010000000100010509010100010000000901010003545\
441080000005ea5015101002002010000002b00000049444c3a6f6d672e6f72672f436f734e61\
6d696e672f4e616d696e67436f6e746578744578743a312e30000001000000000000007400000\
001010200100000003139322e3136382e3135392e31333000fd0a00000b0000004e616d655365\
7276696365000300000000000000080000000100000000545441010000001c000000010000000\
1000100010000000100010509010100010000000901010003545441080000009aad0151010049\
82

我还设置了环境变量:

$ export OMNIORB_CONFIG=/etc/omniORB.cfg

教程中编写的所有内容,已编译的文件(经过 2 次修改:我在 CRequestServiceA.cpp 中添加了:#include 我将 $(CC) $(CPPFLAGS) $(INCLUDES) DataSK.cc 更改为 $(CC) $(CPPFLAGS) $(INCLUDES) DataSK.cc && mv DataSK.o Data .o 在 MakeServer 中),但我仍然遇到错误。

请帮我解决这个问题,我学了很多CORBA C++教程都没有效果

最佳答案

配置文件中的那些反斜杠可能是导致问题的原因。为避免将冗长的 IOR(会更改)粘贴到配置文件中时出现问题,请尝试在配置文件中按如下方式设置 InitRef(假设您在与测试相同的机器上运行名称服务程序)。

InitRef = NameService=corbaname::localhost

或者您可以尝试将 IOR 粘贴为一行(不要打断该行或添加反斜杠)。

或者你可以像这样运行你的服务器:

$ ./Server -ORBInitRef NameService=corbaname::localhost

或者

$ ./Server -ORBInitRef NameService=IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e30000001000000000000007400000001010200100000003139322e3136382e3135392e31333000fd0a00000b0000004e616d6553657276696365000300000000000000080000000100000000545441010000001c0000000100000001000100010000000100010509010100010000000901010003545441080000009aad015101004982

如果您确实使用了 IOR 字符串,请意识到它几乎肯定会在您每次运行命名服务时发生变化,因此请确保您使用的是最新版本。

请参阅omniORB documentation获取更多信息。

看到你的评论后编辑:

该教程可能已过时。尝试更改此行:

CORBA::Object_var obj1=orb->resolve_initial_references("OmniNameService");

对此

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

您可能还希望完成 omniORB documentation 中的 Echo 示例.

关于c++ - 在 Ubuntu 上启动 C++ CORBA 服务器时出现问题,CORBA::SystemException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14511770/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com