CORBA : Difference entre Java 1.4.2 et Java 1.5 et suivants ( Translate to English )
Ecrit le 19-07-2008 (5339 hits) ... section Objets distribués

Si vous essayez de faire fonctionner un programme serveur Corba, avec l'ORB Orbacus par exemple, même s'il fonctionnait sous JDK 1.4, on obtient une exception à partir de Java 1.5 du genre "java.lang.NoSuchMethodError: org.omg.PortableInterceptor.IORInterceptor_3_0.adapter_manager_state_change" 

c'est quelque chose qui ne se produira que sur JDK 1.5, 1.6 etc

La raison tient au fait que dans Java 1.4, le JDK ne contient pas d'implémentation de la classe IORInterceptor_3_0, de sorte que la version inclue avec Orbacus est la seule utilisable.

Malheureusement, Sun a ajouté une mise en œuvre de IORInterceptor_3_0 au JDK 1.5 qui diffère à la fois de la spécification CORBA et de l'implémentation faite avec Orbacus (ils utilisent un entier sur le paramètre ID alors que cela devrait être une chaîne de caractères).

Voilà pourquoi l'erreur n'apparait qu'à partir du JDK 1.5.

La propriété endorsed dirs résoud le problème. il faut positionner java.endorsed.dirs comme propriété java.
ajouter -Djava.endorsed.dirs="chemin vers le répertoire contenant les jars".
Exemple: java   -Djava.endorsed.dirs=C:\Orbacus\lib Serveur

Attention: c'est bien un répertoire qu'il faut préciser, qui contient notamment OB.JAR.


Voir explications des endorsed dirs ici http://java.sun.com/j2se/1.4.2/docs/guide/standards/ .