无法使用 C++ 连接到 java 1.3 NamingService; TAO客户端

发布于 2024-11-30 21:25:16 字数 4781 浏览 1 评论 0原文

我一直在尝试让我的 C++ TAO (v1.6) 客户端连接到在 JDK1.3 上运行的 java tnameserv
但是C++ TAO 客户端无法解析命名服务。它抛出以下异常:

系统异常,ID 'IDL:omg.org/CORBA/UNKNOWN:1.0'
未知的供应商次要代码 ID (53550000),次要代码 = 53550004,已完成 = MAYBE

This is the debug log I am getting

TAO (4144|5228) 已完成初始化进程范围服务上下文
TAO (4144|5228) 默认 ORB 服务初始化开始
TAO (4144|5228) 默认 ORB 服务初始化完成
TAO (4144|5228) 我们是默认的 ORB ...
TAO (4144|5228) 初始化特定于 orb 的服务
TAO (4144|5228) Default_Resource_Factory - 代码集管理器=004AE5C0
TAO (4144|5228) - Codeset_Manager_i::init_ccs,加载的代码集转换器,ncs = 00010001 tcs = 05010001
TAO (4144|5228) - UTF16_BOM_Translator:forceBE 0
TAO (4144|5228) 已加载默认协议
TAO (4144|5228) 创建了新的 ORB <>
TAO (4144|5228) - Transport_Cache_Manager::find_i,没有可用的空闲传输
TAO (4144|5228) - Transport_Cache_Manager::fill_set_i,current_size = 0,cache_maximum = 512
TAO (4144|5228) - IIOP_Connector::begin_connection,应阻止
TAO (4144|5228) - Transport_Connector::wait_for_connection_completion,将等待传输上的连接完成[10603568]
TAO (4144|5228) - Leader_Follower[10603568]::wait_for_event,(领导者)进入反应堆事件循环
TAO (4144|5228) - IIOP_Connection_Handler::open, 本地地址为 <127.0.0.1:54768>
TAO (4144|5228) - IIOP_Connection_Handler::open,与对等点 <127.0.0.1:2323> 的 IIOP 连接512
TAO (4144|5228) - Leader_Follower[10603568]::wait_for_event,(领导者)退出反应器事件循环
TAO (4144|5228) - Transport_Connector::wait_for_connection_completion,传输 [512],等待完成结果 = 1
TAO (4144|5228) - IIOP_Connector::make_connection,新连接到 Transport[512]
TAO (4144 | 5228) - Transport_Cache_Manager::bind_i, Transport[512];哈希值 2130708756
TAO (4144|5228) - Transport_Cache_Manager::bind_i,缓存大小为 [1]
TAO (4144|5228) - 传输[512]::register_handler
TAO (4144|5228) - Transport_Connector::connect,在 TAO_CLIENT_ROLE 中打开 Transport[512]
TAO (4144|5228) - Codeset_Manager_i::set_tcs,配置文件中没有代码集组件
TAO (4144|5228) - Muxed_TMS[512]::request_id, <1>
TAO (4144|5228) - Codeset_Manager_i::generate_service_context,使用 tcs_c = 00010001,tcs_w = 00010109
TAO (4144|5228) - GIOP_Message_Base::dump_msg,发送 GIOP v1.0 消息,108 个数据字节,我的字节序,类型请求[1]
TAO (4144|5228) - Transport[512]::drain_queue_helper,发送 1 个缓冲区
TAO (4144|5228) - Transport[512]::drain_queue_helper,缓冲区 0/1 有 120 字节
TAO - Transport[512]::drain_queue_helper (0/120) - HEXDUMP 120 字节
47 49 4f 50 01 00 01 00 6c 00 00 00 01 00 00 00 GIOP....l.......
01 00 00 00 0c 00 00 00 01 00 4a 00 01 00 01 00 .......J.....
09 01 01 00 01 00 00 00 01 00 00 00 0b 00 00 00 ........
4e 61 6d 65 53 65 72 76 69 63 65 00 06 00 00 00 名称服务.....
5f 69 73 5f 61 00 00 00 00 00 00 00 28 00 00 00 _is_a.......(...
49 44 4c 3a 6f 6d 67 2e 6f 72 67 2f 43 6f 73 4e IDL:omg.org/CosN
61 6d 69 6e 67 2f 4e 61 6d 69 6e 67 43 6f 6e 74 aming/NamingCont
65 78 74 3a 31 2e 30 00 分机:1.0。
TAO (4144|5228) - Transport[512]::drain_queue_helper,数据结束
TAO (4144|5228) - 传输[512]::cleanup_queue, byte_count = 120
TAO (4144|5228) - Transport[512]::cleanup_queue,传输后,bc = 0,all_sent = 1,ml = 0
TAO (4144|5228) - Transport[512]::drain_queue_helper, byte_count = 120, head_is_empty = 1
TAO (4144|5228) - Transport[512]::drain_queue_i,辅助函数 retval = 1
TAO (4144|5228) - 运输[512]::make_idle
TAO (4144|5228) - Leader_Follower[512]::wait_for_event,(领导者)进入反应堆事件循环
TAO (4144|5228) - 运输[512]::handle_input
TAO (4144|5228) - Transport[512]::process_queue_head, 0 已入队
TAO (4144|5228) - Transport[512]::handle_input_parse_data,输入
TAO (4144|5228) - Transport[512]::handle_input_parse_data,读取 236 字节
TAO (4144|5228) - GIOP_Message_Base::dump_msg,recv GIOP v1.0 消息,224 数据字节,其他字节序,类型回复[6]
TAO (4144|5228) - Leader_Follower[512]::wait_for_event,(领导者)退出反应器事件循环
TAO (4144|5228) - Synch_Twoway_Inspiration::handle_system_exception
TAO (4144 | 5228) - Synch_Twoway_Initation::handle_system_exception,即将引发
(4144|5228) 异常,捕获异常:
系统异常,ID 'IDL:omg.org/CORBA/UNKNOWN:1.0'
未知的供应商次要代码 ID (53550000),次要代码 = 53550004,已完成 = 可能

摧毁 ORB <>
TAO (4144|5228) - Connection_Handler[512]::close_connection_eh,从缓存中清除条目
TAO (4144|5228) - Transport[512]::cleanup_queue_i,清理完整队列
TAO (4144|5228) - Transport[512]::cleanup_queue_i,丢弃 0 条消息,0 字节
TAO (4144|5228) - Connection_Handler[512]::close_connection_eh,从反应器中移除
TAO (4144|5228) - Connection_Handler[512]::close_connection_eh,取消所有计时器
TAO (4144|5228) - Transport[512]::cleanup_queue_i,清理完整队列
TAO (4144|5228) - Transport[512]::cleanup_queue_i,丢弃 0 条消息,0 字节
TAO (4144|5228) - Connection_Handler[512]::close_connection_eh
TAO (4144|5228) - Transport[512]::cleanup_queue_i,清理完整队列
TAO (4144|5228) - Transport[512]::cleanup_queue_i,丢弃 0 条消息,0 字节

请帮助我解决这个问题。谢谢。

I have been trying to make my C++ TAO (v1.6) client connect to java tnameserv running on JDK1.3.
But the C++ TAO client is not able to resolve the naming service. It is throwing the following exception :

system exception, ID 'IDL:omg.org/CORBA/UNKNOWN:1.0'
Unknown vendor minor code id (53550000), minor code = 53550004, completed = MAYBE

This is the debug log I am getting

TAO (4144|5228) Completed initializing the process-wide service context
TAO (4144|5228) Default ORB services initialization begins
TAO (4144|5228) Default ORB services initialization completed
TAO (4144|5228) We are the default ORB ...
TAO (4144|5228) Initializing the orb-specific services
TAO (4144|5228) Default_Resource_Factory - codeset manager=004AE5C0
TAO (4144|5228) - Codeset_Manager_i::init_ccs, Loaded Codeset translator , ncs = 00010001 tcs = 05010001
TAO (4144|5228) - UTF16_BOM_Translator: forceBE 0
TAO (4144|5228) Loaded default protocol
TAO (4144|5228) created new ORB <>
TAO (4144|5228) - Transport_Cache_Manager::find_i, no idle transport is available
TAO (4144|5228) - Transport_Cache_Manager::fill_set_i, current_size = 0, cache_maximum = 512
TAO (4144|5228) - IIOP_Connector::begin_connection, to which should block
TAO (4144|5228) - Transport_Connector::wait_for_connection_completion, going to wait for connection completion on transport[10603568]
TAO (4144|5228) - Leader_Follower[10603568]::wait_for_event, (leader) enter reactor event loop
TAO (4144|5228) - IIOP_Connection_Handler::open, The local addr is <127.0.0.1:54768>
TAO (4144|5228) - IIOP_Connection_Handler::open, IIOP connection to peer <127.0.0.1:2323> on 512
TAO (4144|5228) - Leader_Follower[10603568]::wait_for_event, (leader) exit reactor event loop
TAO (4144|5228) - Transport_Connector::wait_for_connection_completion, transport [512], wait done result = 1
TAO (4144|5228) - IIOP_Connector::make_connection, new connected connection to on Transport[512]
TAO (4144|5228) - Transport_Cache_Manager::bind_i, Transport[512]; hash 2130708756
TAO (4144|5228) - Transport_Cache_Manager::bind_i, cache size is [1]
TAO (4144|5228) - Transport[512]::register_handler
TAO (4144|5228) - Transport_Connector::connect, opening Transport[512] in TAO_CLIENT_ROLE
TAO (4144|5228) - Codeset_Manager_i::set_tcs, No codeset component in profile
TAO (4144|5228) - Muxed_TMS[512]::request_id, <1>
TAO (4144|5228) - Codeset_Manager_i::generate_service_context, using tcs_c = 00010001, tcs_w = 00010109
TAO (4144|5228) - GIOP_Message_Base::dump_msg, send GIOP v1.0 msg, 108 data bytes, my endian, Type Request[1]
TAO (4144|5228) - Transport[512]::drain_queue_helper, sending 1 buffers
TAO (4144|5228) - Transport[512]::drain_queue_helper, buffer 0/1 has 120 bytes
TAO - Transport[512]::drain_queue_helper (0/120) - HEXDUMP 120 bytes
47 49 4f 50 01 00 01 00 6c 00 00 00 01 00 00 00 GIOP....l.......
01 00 00 00 0c 00 00 00 01 00 4a 00 01 00 01 00 ..........J.....
09 01 01 00 01 00 00 00 01 00 00 00 0b 00 00 00 ................
4e 61 6d 65 53 65 72 76 69 63 65 00 06 00 00 00 NameService.....
5f 69 73 5f 61 00 00 00 00 00 00 00 28 00 00 00 _is_a.......(...
49 44 4c 3a 6f 6d 67 2e 6f 72 67 2f 43 6f 73 4e IDL:omg.org/CosN
61 6d 69 6e 67 2f 4e 61 6d 69 6e 67 43 6f 6e 74 aming/NamingCont
65 78 74 3a 31 2e 30 00 ext:1.0.
TAO (4144|5228) - Transport[512]::drain_queue_helper, end of data
TAO (4144|5228) - Transport[512]::cleanup_queue, byte_count = 120
TAO (4144|5228) - Transport[512]::cleanup_queue, after transfer, bc = 0, all_sent = 1, ml = 0
TAO (4144|5228) - Transport[512]::drain_queue_helper, byte_count = 120, head_is_empty = 1
TAO (4144|5228) - Transport[512]::drain_queue_i, helper retval = 1
TAO (4144|5228) - Transport[512]::make_idle
TAO (4144|5228) - Leader_Follower[512]::wait_for_event, (leader) enter reactor event loop
TAO (4144|5228) - Transport[512]::handle_input
TAO (4144|5228) - Transport[512]::process_queue_head, 0 enqueued
TAO (4144|5228) - Transport[512]::handle_input_parse_data, enter
TAO (4144|5228) - Transport[512]::handle_input_parse_data, read 236 bytes
TAO (4144|5228) - GIOP_Message_Base::dump_msg, recv GIOP v1.0 msg, 224 data bytes, other endian, Type Reply[6]
TAO (4144|5228) - Leader_Follower[512]::wait_for_event, (leader) exit reactor event loop
TAO (4144|5228) - Synch_Twoway_Invocation::handle_system_exception
TAO (4144|5228) - Synch_Twoway_Invocation::handle_system_exception, about to raise
(4144|5228) EXCEPTION, Exception caught:
system exception, ID 'IDL:omg.org/CORBA/UNKNOWN:1.0'
Unknown vendor minor code id (53550000), minor code = 53550004, completed = MAYBE

Destroying ORB <>
TAO (4144|5228) - Connection_Handler[512]::close_connection_eh, purging entry from cache
TAO (4144|5228) - Transport[512]::cleanup_queue_i, cleaning up complete queue
TAO (4144|5228) - Transport[512]::cleanup_queue_i, discarded 0 messages, 0 bytes
TAO (4144|5228) - Connection_Handler[512]::close_connection_eh, removing from the reactor
TAO (4144|5228) - Connection_Handler[512]::close_connection_eh, cancel all timers
TAO (4144|5228) - Transport[512]::cleanup_queue_i, cleaning up complete queue
TAO (4144|5228) - Transport[512]::cleanup_queue_i, discarded 0 messages, 0 bytes
TAO (4144|5228) - Connection_Handler[512]::close_connection_eh
TAO (4144|5228) - Transport[512]::cleanup_queue_i, cleaning up complete queue
TAO (4144|5228) - Transport[512]::cleanup_queue_i, discarded 0 messages, 0 bytes

Kindly help me with this. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岁月打碎记忆 2024-12-07 21:25:16

看起来 tnameserv 组件正在抛出非标准的 SystemExceptionCORBA 规范始终不鼓励这样做:

供应商可能会定义非标准系统异常,但这些
不鼓励使用异常,因为它们是不可移植的。一个
非标准系统异常,当传递给不支持的 ORB 时
识别它,应由该 ORB 作为未知标准呈现
系统异常。来自的次要代码和完成状态
无法识别的异常应保留在 UNKNOWN 异常中。

不过,很难判断供应商特定的次要代码 (53550000) 代表什么。 Oracle/Sun 似乎没有关于其代码的文档,因此我建议打开 tnameserv 上的日志记录以查看它返回给您的内容。

我还建议您编写一个快速的 Java 1.3 CORBA 客户端,它与 C++ TAO 客户端执行相同的操作,然后看看是否有效。如果是这样,您的 TAO C++ 客户端就会遇到互操作性问题。如果它不起作用,您至少会看到神秘的 SystemException 的详细信息,它可能会引导您找到解决方案。

It looks like the tnameserv component is throwing a non-standard SystemException. This was always discouraged by the CORBA spec:

Vendors may define non-standard system exceptions, but these
exceptions are discouraged because they are non-portable. A
non-standard system exception, when passed to an ORB that does not
recognize it, shall be presented by that ORB as an UNKNOWN standard
system exception. The minor code and completion status from the
unrecognized exception shall be preserved in the UNKNOWN exception.

It's hard to tell what that vendor-specific minor code (53550000) represents, though. Oracle/Sun doesn't seem to have documentation on their codes, so I'd suggest turning up the logging on your tnameserv to see what it's throwing back to you.

I'd also suggest you write a quick Java 1.3 CORBA client which does the same thing as your C++ TAO client and see if that works. If it does, your TAO C++ client is hitting an interoperability problem. If it doesn't work, you'll at least see the details of the mysterious SystemException and it might lead you to the solution.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文