CORBA: Java's servertool не позволяет мне зарегистрировать серверный класс

Попали в царство CORBA ...

Я пытаюсь быстро изучить (если не освоить ...) CORBA вместе с ее сопоставлениями Java. Я наткнулся на несколько старых руководств:

Java IDL: пример "Hello World"

Служба имен

orbd - Демон брокера объектных запросов

Я создал проект с источником из первой ссылки выше (Java IDL ...) и запустил как HelloServer, так и HelloClient после выполнения следующей команды:

start orbd -ORBInitialPort 1050

Неудивительно, что все работает :)

Затем я регистрирую HelloServer в качестве постоянной службы и терплю неудачу!

Я запускаю следующую команду (запускается из папки «bin» (содержащей файлы .class)):

%JAVA_HOME%\bin\servertool -ORBInitialPort 1050

Затем я бегу:

servertool > register -server HelloServer -classpath .

а процесс просто зависает ...

Что я делаю не так


person Yaneeve    schedule 22.12.2009    source источник
comment
Чтобы уточнить, servertool ›- это приглашение командной оболочки servertool, и вы вводите команду register -server HelloServer -classpath. в командной оболочке. Примеры также включают аргумент -applicationName HelloServerApName.   -  person richj    schedule 28.12.2009
comment
Вы правы, но они не меняют результат - то есть я получаю то же самое, независимо от того, добавляю я их или нет, и, более того, я понимаю, что они не являются обязательными.   -  person Yaneeve    schedule 29.12.2009


Ответы (2)


Ну, я не уверен, почему все начало работать, но ...

Из папки «bin» (содержащей файлы .class) я запустил:

%JAVA_HOME%\bin\orbd -ORBInitialPort 1050

Затем открыл новую оболочку cmd (из того же места) - поскольку предыдущая запускает orbd и запускается:

%JAVA_HOME%\bin\servertool -ORBInitialPort 1050

Оба:

register -server HelloServer -classpath . -applicationName HelloServerApName

и

register -server HelloServer -classpath .

работа

person Yaneeve    schedule 03.01.2010
comment
Вы знаете, ПОЧЕМУ работает абсолютный путь? а не просто запуск orbd или servertool из строки cmd в каталоге, где находится ваш сервер (который операционная система найдет в PATH)? - person Alex Bitek; 28.10.2011
comment
Для меня это работает только в среде Linux, я попытался запустить приложение в Windows XP SP3 с установленной последней версией Java JDK 7, и я получил определение сервера Bad: основной класс не найден, хотя я запускал servertool, используя абсолютный путь и из того же каталога где находятся файлы .class для постоянного сервера. Вы знаете, как указать более одного пути после параметра -classpath? В Linux я использовал -classpath.: ../ otherdir, и он работал, но в Windows, похоже, не работает. - person Alex Bitek; 29.10.2011
comment
У меня он работал в Windows, я сделал следующее: 0) Убедился, что в пути JDK нет пробелов (я деинсталлировал Java из C: \ Program Files \ Java и установил его в C: \ Java) 1) Создал переменную среды% JAVA_HOME% со значением C: \ Java и затем добавленным к переменной PATH% JAVA_HOME \ bin 2) Из cmd, запущенного с или без пути abs% JAVA_HOME% \ bin \ servertool -ORBInitialPort 1050 3)% JAVA_HOME% \ bin \ servertool -ORBInitialPort 1050 4) Внутри servertool введено: register -server PersistentServer -classpath.; .. \ otherdir 5) java -cp.; .. \ otherdir PersistentClient (otherdir был создан idlj) - person Alex Bitek; 29.10.2011
comment
Я думаю, что проблема в том, что вы должны убедиться, что ваш путь установки Java JDK или JRE НЕ содержит пробелов! Это очень важно, поскольку я обнаружил, что в Windows это не сработает, если ваша Java не установлена ​​в каталог без пробелов. - person Alex Bitek; 30.10.2011
comment
@ReturnInfinity пробовали ли вы использовать нотацию Windows 8.3 (короткие) пути? [например: PROGRA ~ 1 \ java \ JDK16 ~ 1.0_2] - person Yaneeve; 30.10.2011
comment
Не пробовал, придется разобраться. Скорее всего, это сработает. Спасибо за предложение. Но дело в том, что servertool работает без указания абсолютного пути, если путь, по которому установлен servertool и / или orbd, не содержит пробелов. Это означает, что мне нужно только добавить в переменную PATH местоположение% JAVA_HOME% \ bin, а затем просто запустить servertool / orbd из каталога, в котором я оказался, и он будет работать. (при условии, что Java установлена ​​в каталог без пробелов) - person Alex Bitek; 30.10.2011

Знает ли HelloServer, где (порт и имя компьютера) найти службу именования?

В противном случае может помочь эта ссылка: orbd - Демон брокера объектных запросов (ORBD).

person richj    schedule 24.12.2009