Невозможно подключиться к java 1.3 NamingService с помощью C ++ TAO Client. - PullRequest
0 голосов
/ 22 августа 2011

Я пытался заставить моего клиента C ++ TAO (v1.6) подключиться к java tnameserv, работающей на JDK1.3.
Но клиент C ++ TAO не может разрешить службу именования. Выдает следующее исключение:

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

Это журнал отладки, который я получаю

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

Пожалуйста, помогите мне с этим. Спасибо.

1 Ответ

1 голос
/ 06 сентября 2011

Похоже, tnameserv компонент выбрасывает нестандартный SystemException. Это всегда не поощрялось спецификацией CORBA :

Поставщики могут определять нестандартные системные исключения, но они исключения не приветствуются, потому что они не переносимы. нестандартное системное исключение при передаче в ORB, который не признать его, должен быть представлен этим ORB в качестве НЕИЗВЕСТНОГО стандарта системное исключение. Дополнительный код и статус завершения из нераспознанное исключение должно быть сохранено в НЕИЗВЕСТНОМ исключении.

Трудно сказать, что представляет этот младший код поставщика (53550000). Похоже, что Oracle / Sun не имеет документации по их кодам, поэтому я бы посоветовал включить регистрацию на вашем tnameserv, чтобы увидеть, что он вам возвращает.

Я бы также предложил вам написать быстрый клиент Java 1.3 CORBA, который делает то же самое, что и ваш клиент CAO TAO, и посмотреть, работает ли он. Если это так, ваш клиент TAO C ++ сталкивается с проблемой совместимости. Если это не сработает, вы по крайней мере увидите детали таинственного SystemException, и это может привести вас к решению.

...