0

C++ TAO (v1.6) クライアントをJDK1.3tnameservで実行されている Java に接続しようとしています。しかし、C++ TAO クライアントはネーム サービスを解決できません。次の例外をスローしています:

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

これは私が取得しているデバッグログです

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

これで私を助けてください。ありがとう。

4

1 に答える 1

1

tnameservコンポーネントが非標準をスローしているようSystemExceptionです。これは、 CORBA仕様によって常に推奨されていませんでした。

ベンダーは非標準のシステム例外を定義する場合がありますが、これらの例外は移植性がないためお勧めできません。非標準システム例外は、それを認識しないORBに渡された場合、そのORBによってUNKNOWN標準システム例外として提示されるものとします。認識されない例外からのマイナーコードと完了ステータスは、UNKNOWN例外に保持されます。

ただし、そのベンダー固有のマイナーコード()が何を53550000表しているのかを判断するのは困難です。Oracle / Sunにはコードに関するドキュメントがないようです。そのため、tnameservのロギングを上げて、何が返されるかを確認することをお勧めします。

また、C++TAOクライアントと同じことを行う簡単なJava1.3CORBAクライアントを作成して、それが機能するかどうかを確認することをお勧めします。もしそうなら、あなたのTAOC++クライアントは相互運用性の問題にぶつかっています。それがうまくいかない場合は、少なくとも神秘的な詳細が表示SystemExceptionされ、解決策につながる可能性があります。

于 2011-09-06T02:25:36.180 に答える