Сервер CORBA на JVM 1.2 и клиент на 1.3

У меня есть сервер Corba, скомпилированный и работающий на JVM 1.2. Я использую java IDL для компиляции файла IDL и создания необходимых заглушек и скелетов, а также с помощью NameService для запуска сервера. Я могу подключиться к серверу, если клиент запущен в той же системе, но если я попытаюсь запустить клиент на другом компьютере с JVM 1.3, я не смогу подключиться к серверу.

Однако я могу запустить это на двух разных машинах, обе на JVM 1.2, вот команды, которые я использую

На сервере
tnameserv -ORBInitialPort 2000
java HelloServer -ORBInitialPort 2000 -ORBInitialHost myhost


На клиентском компьютере
java HelloClient -ORBInitialPort 2000 -ORBInitialHost myhost

Но я получаю следующую ошибку на стороне клиента. Я ссылался на пример на этом сайте http://download.oracle.com/javase/1.3/docs/guide/idl/GShome.html

Ошибка трассировки стека
ERROR : org.omg.CORBA.COMM_FAILURE: minor code: 1398079490 completed: No org.omg.CORBA.COMM_FAILURE: minor code: 1398079490 completed: No at com.sun.corba.se.internal.iiop.IIOPConnection.writeLock(IIOPConnection.java:956) at com.sun.corba.se.internal.iiop.IIOPConnection.send(IIOPConnection.java:1017) at com.sun.corba.se.internal.iiop.IIOPOutputStream.invoke(IIOPOutputStream.java:71) at com.sun.corba.se.internal.iiop.ClientRequestImpl.invoke(ClientRequestImpl.java:82) at com.sun.corba.se.internal.corba.ClientDelegate.invoke(ClientDelegate.java:153) at com.sun.corba.se.internal.corba.InitialNamingClient.resolve(InitialNamingClient.java:195) at com.sun.corba.se.internal.corba.InitialNamingClient.cachedInitialReferences(InitialNamingClient.java:260) at com.sun.corba.se.internal.corba.InitialNamingClient.resolve_initial_references(InitialNamingClient.java:183) at com.sun.corba.se.internal.corba.ORB.resolve_initial_references(ORB.java:1465) at HelloClient.main(HelloClient.java:17)


person Rakesh    schedule 09.08.2011    source источник


Ответы (1)


Учитывая, что срок службы Java 1.5 истекает через два года, версии 1.3 — почти пять лет, а версии 1.2 — я не знаю, насколько далеко, я настоятельно рекомендую вам запустить обе версии. клиент и сервер на чем-то текущем, например 1.6 или 1.7, если вы один из первых пользователей, что явно не так ;-)

person user207421    schedule 10.08.2011
comment
Спасибо за ваш ответ, я знаю, что JVM1.2 достиг своего EOL, но я разрабатываю интерфейс для клиента, чье существующее приложение было разработано на JVM 1.2. Итак, я развертываю свое приложение на JVM 1.6, а существующее клиентское приложение на 1.2 должно взаимодействовать с 1.6. Я мог бы использовать RMI, но требование состоит в том, чтобы сделать мое приложение универсальным интерфейсом, поэтому я использую corba. Существуют и другие библиотеки corba, такие как jacORB, но они поддерживаются только для java 1.4 и выше. Поэтому мне просто интересно, можно ли общаться с java 1.2/1.3 на 1.6 с помощью corba. - person Rakesh; 10.08.2011
comment
@Rakesh, это должно быть возможно, но вы имеете дело с самым крайним случаем взаимодействия между JVM. Было бы неплохо попробовать приложение вашего клиента на 1.6. Через какое-то время им придется мигрировать, и они должны были сделать это много лет назад. - person user207421; 10.08.2011
comment
дело в том, что мой клиент не хочет переходить на более высокую JVM, так как ему нужно перепроектировать свое существующее приложение. Спасибо за предложение. Я попытаюсь убедить своего клиента перейти на текущую версию JVM. - person Rakesh; 10.08.2011
comment
@Ralesh Все, что нужно сделать вашему клиенту, это протестировать его на текущей JVM. Если это работает, они сделаны. Если нет, что крайне маловероятно, у них есть небольшое упражнение по отладке. Конечно, никакой переделки не требуется. - person user207421; 11.08.2011