2009-12-22 11 views
1

démolis dans le royaume de CORBA ...CORBA: le servertool Java ne me permet pas d'enregistrer une classe de serveur

Je suis en train d'apprendre rapidement (sinon maîtriser ...) CORBA le long du côté de son Mappages Java Je suis venu sur quelques vieux tutoriels:

Java IDL: The "Hello World" Example

Naming Service

orbd - The Object Request Broker Daemon

J'ai créé un projet avec la source du premier lien ci-dessus (Java IDL ...) et ai couru à la fois HelloServer et HelloClient après l'exécution de la commande suivante:

start orbd -ORBInitialPort 1050 

Non surprisingl y, tout fonctionne :)

Je puis avec pour enregistrer le HelloServer dans le service comme un persistant et échouer lamentablement!

J'exécutez la commande suivante (lancée à partir du dossier "bin" (celui qui contient les fichiers .class)):

%JAVA_HOME%\bin\servertool -ORBInitialPort 1050 

Je cours alors:

servertool > register -server HelloServer -classpath . 

et le processus tout simplement ... pend

Que pourrais-je faire mal

+0

Juste pour clarifier les choses, "servertool>" est l'invite dans le shell de commande servertool, et que vous tapez "register -server HelloServer -classpath." dans la coquille de commande. Les exemples incluent également un argument "-applicationName HelloServerApName". – richj

+0

Vous avez raison, mais ils ne changent pas le résultat - c'est-à-dire que je reçois la même chose, que je les ajoute ou non, et d'ailleurs je crois comprendre qu'ils sont optionnels. – Yaneeve

Répondre

1

Eh bien, je ne sais pas pourquoi les choses ont commencé à travailler, mais ...

Dans le dossier « bin » (celui qui contient les fichiers .class) J'ai couru:

%JAVA_HOME%\bin\orbd -ORBInitialPort 1050 

Ensuite, a ouvert un nouveau shell cmd (au même endroit) - depuis le précédent est en cours d'exécution et l'orbd ont courir:

%JAVA_HOME%\bin\servertool -ORBInitialPort 1050 

deux:

register -server HelloServer -classpath . -applicationName HelloServerApName 

et

register -server HelloServer -classpath . 

travail

+0

Savez-vous POURQUOI en utilisant le chemin absolu fonctionne? et pas simplement en exécutant simplement orbd ou servertool à partir de la ligne cmd dans le répertoire où se trouve votre serveur (que le système d'exploitation trouvera dans le PATH)? – bitek

+0

Pour moi cela fonctionne seulement dans un environnement Linux, j'ai essayé d'exécuter l'application sur un Windows XP SP3 avec le dernier Java JDK 7 installé et je reçois la "mauvaise définition de serveur: classe principale non trouvée" le même répertoire que les fichiers .class du serveur persistant. Savez-vous comment spécifier plus d'un chemin après le paramètre -classpath? Sous Linux j'ai fait "-classpath.: ../ otherdir" et ça a marché mais sur Windows ça ne semble pas fonctionner. – bitek

+0

Je l'ai eu fonctionnant dans Windows aussi j'ai fait ce qui suit: 0) Assurez-vous que le chemin JDK n'a aucun espace (j'ai désinstallé Java de C: \ Program Files \ Java et l'ai installé à C: \ Java) 1) % JAVA_HOME% avec la valeur de C: \ Java puis ajouté à la variable PATH% JAVA_HOME \ bin 2) A partir d'un cmd exécuté avec ou sans chemin absolu% JAVA_HOME% \ bin \ servertool -ORBInitialPort 1050 3)% JAVA_HOME% \ bin \ servertool -ORBInitialPort 1050 4) Servertool entrée: register -server PersistentServer -classpath.; .. \ otherdir 5) java -cp.; .. \ otherdir PersistentClient (otherdir a été généré par idlj) – bitek