2010-04-17 5 views
1

J'essaie d'exécuter une application Java que j'ai écrite pour m'abonner à un service d'événements CORBA. Il fonctionne correctement sur mon ordinateur Windows, mais dès que je le déploie sur le serveur UNIX, il me donne une exception org.omg.CORBA.NO_IMPLEMENT. Des idées sur la raison pour laquelle cela pourrait se produire? J'utilise JacORB sur mon ordinateur Windows et je passe des arguments VM pour initialiser le client ORB, mais je ne suis pas sûr de savoir comment faire cela sous UNIX et si c'est même nécessaire.Exécution d'un client CORBA Java sous Unix

Merci d'avance!

+0

Comment fonctionne le client Corba sous Unix? L'exécutez-vous depuis la ligne de commande ou dans un conteneur Java EE? – Kdeveloper

Répondre

2

le JRE est livré avec une implémentation Corba complète et y Vous devez lui dire de les ignorer et d'utiliser JacOrb à la place.

Sur Unix:

-Xbootclasspath:${JACORB_HOME}/lib/jacorb.jar:${JAVA_HOME}/jre/lib/rt.jar:${CLASSPATH} 
-Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB 
-Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton 

Consulter la docs for JacORB Il est très bien expliqué. Vous devez installer les fichiers jars et vous devez pointer vers le ior ou le service de noms transmis à votre machine virtuelle Java. Si votre question est comment faire cela dans un shell alors s'il vous plaît commentez ou reformulez la question.

+0

J'ai fini par passer à une machine tangente linux et j'ai installé une version plus récente du JDK et de JacORB, qui a corrigé les problèmes que je rencontrais. Merci à tous pour la contribution. – Benny

0

Le Javadoc pour org.omg.CORBA.NO_IMPLEMENTIMPLEMENT:

Cette exception indique que, même si l'opération qui a été invoquée existe (il a une définition IDL), aucune mise en œuvre pour cette opération existe. NO_IMPLEMENT peut, par exemple, être déclenché par un ORB si un client demande la définition de type d'un objet à partir du référentiel d'interface, mais qu'aucun référentiel d'interface n'est fourni par l'ORB.

Il contient un code secondaire , qui donne des informations plus détaillées sur les causes de l'exception et sur l'état d'achèvement. Il peut également contenir une chaîne décrivant l'exception

donc je suppose que vous devez regarder ce que l'exception dit exactement. Mon pari est que vous devez ajouter ces arguments java pour initialiser le client ORB.

0

Si les versions diffèrent, il se pourrait que vous ne l'avez pas remarqué le changement de noms de paquets dans JacORB 1.3.21 THA noms ont changé de jacorb à org .jacorb

org.omg.CORBA.ORBClass=jacorb.orb.ORB 
org.omg.CORBA.ORBSingletonClass=jacorb.orb.ORBSingleton 

à ceci:

org.omg.CORBA.ORBClass=org.jacorb.orb.ORB 
org.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton 

Si ce n'est pas la cause, s'il vous plaît poster verions exacte