Essayez d'appeler le service CORBA sur Java 11+

Auparavant, dans "Appeler le service CORBA depuis Spring (Java)", comment appeler le service CORBA à l'aide de la fonction Spring sur Java 8 Je l'ai présenté, mais cette fois, je voudrais vous présenter comment appeler le service CORBA en utilisant une bibliothèque alternative en Java 11+ (Pourquoi CORBA à cette époque!?) Veuillez ne pas demander w).

Version de vérification

JDK

NOTE:

Dans cette entrée, le service CORBA est également créé en Java ... Afin de pouvoir acquérir l'objet CORBA via le service de nommage, la fonction équivalente à orbd incluse dans JDK 8 est également requise. (Si vous souhaitez obtenir un objet CORBA en utilisant une chaîne IOR sans utiliser de service de nommage, vous n'avez pas besoin d'une fonction équivalente à orbd). Puisque JDK 11 ou version ultérieure n'inclut pas la commande orbd ... Cette entrée utilise JDK 8 uniquement pour utiliser la commande orbd ... (Complètement compromise, mais cette entrée se concentre uniquement sur le côté client. Veuillez noter que

Spring Boot

Bibliothèque alternative

Qu'est-ce que Eclipse ORB?

En gros, il semble que l'implémentation ORB utilisée dans GlassFish soit en cours de développement en tant que sous-projet indépendant d'Eclipse EE 4J. À partir de cette bibliothèque, non seulement l'implémentation ORB mais aussi des outils tels que idlj et rmic sont fournis. Cette bibliothèque est présentée comme bibliothèque alternative dans "JEP 320: Supprimer les modules Java EE et CORBA". Ça a été.

Qu'est-ce que le reconditionnement JBoss de l'ORB OpenJDK?

Il semble que JBoss redistribue l'implémentation ORB d'OpenJDK 8. Depuis la 1ère version est 2015 ... Dépréciée dans JDK 9, on ne sait pas si cela est lié à la disparition du module dans JDK 11.

Qu'est-ce que le reconditionnement par JBoss des ajouts ORB OpenJDK9?

JBoss a-t-il disparu dans OpenJDK 9? Il semble que ce soit une bibliothèque qui redistribue les classes liées à ORB. Ici, "[Appelez le service CORBA depuis Spring (Java)](https://qiita.com/kazuki43zoo/items/5eb4d57d785e0b3505fb#spring%E3%81%AE%E6%A9%9F%E8%83" % BD% E3% 82% 92% E4% BD% BF% E3% 81% A3% E3% 81% A6corba% E3% 82% B5% E3% 83% BC% E3% 83% 93% E3% 82% B9 % E3% 82% 92% E5% 91% BC% E3% 81% B3% E5% 87% BA% E3% 81% 97% E3% 81% A6% E3% 81% BF% E3% 82% 8B) " Le " com.sun.jndi.cosnaming.CNCtxFactory "utilisé dans est inclus.

Créons un service CORBA en Java

"[Ici](https://qiita.com/kazuki43zoo/items/5eb4d57d785e0b3505fb#java%E3%81%A7corba%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9" % E3% 82% 92% E4% BD% 9C% E3% 81% A3% E3% 81% A6% E3% 81% BF% E3% 82% 8B) ". Concernant la partie qui génère du code Java à partir du fichier IDL, il n'y a pas de commande idlj dans JDK 11+, donc idlj fourni par Eclipse ORB Vous pouvez générer une classe équivalente en utilisant /corba/idlj/4.2.1/idlj-4.2.1.jar) (jar exécutable).

$ java -jar idlj-4.2.1.jar -fall -td src/main/java src/main/resources/Greeting.idl

Essayez de publier le service CORBA en Java

Activer la bibliothèque alternative

Comme il n'y a pas d'implémentation ORB dans JDK 11+, si vous ne faites rien, vous ne pourrez pas trouver la classe requise et compiler, donc d'abord ... vous devez être capable d'utiliser une bibliothèque alternative.

ORB Éclipse

pom.xml


<dependency>
  <groupId>org.glassfish.corba</groupId>
  <artifactId>glassfish-corba-orb</artifactId>
  <version>4.2.1</version>
</dependency>
<dependency> <!--"Com" dans Spring Boot.sun.jndi.cosnaming.Pour utiliser "CNCTxFactory"-->
  <groupId>org.jboss.openjdk-orb</groupId>
  <artifactId>openjdk-orb-jdk9-supplement</artifactId>
  <version>1.0.3.Final</version>
  <exclusions>
  <exclusion> <!--Exclus car l'implémentation ORB chevauche l'ORB Eclipse-->
    <groupId>org.jboss.openjdk-orb</groupId>
    <artifactId>openjdk-orb</artifactId>
    </exclusion>
  </exclusions>
</dependency>

Reconditionnement JBoss de l'ORB OpenJDK

pom.xml


<dependency>
  <groupId>org.jboss.openjdk-orb</groupId>
  <artifactId>openjdk-orb</artifactId>
  <version>8.1.4.Final</version>
</dependency>

Libération du service CORBA

Publiez le service CORBA lorsque l'ORB est disponible. Pour plus d'informations, voir "[here](https://qiita.com/kazuki43zoo/items/5eb4d57d785e0b3505fb#java%E3%81%A7corba%E3%82%B5%E3%83%BC%E3%83%93%E3%82] % B9% E3% 82% 92% E5% 85% AC% E9% 96% 8B% E3% 81% 97% E3% 81% A6% E3% 81% BF% E3% 82% 8B) ". Si l'environnement est tel que la commande orbd du JDK 8 se trouve dans le chemin, il n'est pas nécessaire de modifier le code source, mais si le chemin n'est pas dans le chemin ... Les modifications suivantes sont nécessaires.

    List<String> orbdStartupCommands = new ArrayList<>();
//    orbdStartupCommands.add("orbd");
    orbdStartupCommands.add("/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin/orbd"); //Spécifiez la commande avec le chemin complet
    orbdStartupCommands.addAll(Arrays.asList(ORB_OPTIONS));

Essayez d'appeler le service CORBA depuis Java

"[Ici](https://qiita.com/kazuki43zoo/items/5eb4d57d785e0b3505fb#java%E3%81%8B%E3%82%89corba%E3%82%B5%E3%83%BC%E3%83%93" % E3% 82% B9% E3% 82% 92% E5% 91% BC% E3% 81% B3% E5% 87% BA% E3% 81% 97% E3% 81% A6% E3% 81% BF% E3 % 82% 8B) ». Il n'y a rien à réparer.

Essayez d'appeler le service CORBA à l'aide de la fonction Spring

"[Ici](https://qiita.com/kazuki43zoo/items/5eb4d57d785e0b3505fb#spring%E3%81%AE%E6%A9%9F%E8%83%BD%E3%82%92%E4%BD%BF % E3% 81% A3% E3% 81% A6corba% E3% 82% B5% E3% 83% BC% E3% 83% 93% E3% 82% B9% E3% 82% 92% E5% 91% BC% E3 % 81% B3% E5% 87% BA% E3% 81% 97% E3% 81% A6% E3% 81% BF% E3% 82% 8B) ". Il n'y a rien à réparer.

Application de démonstration

Bien que ce ne soit pas exactement le même que le contenu introduit dans cette entrée, une application de démonstration avec le même contenu est publiée sur GitHub.

Résumé

CORBA a perdu son module dans JDK 11, mais j'ai trouvé qu'il pouvait être utilisé dans l'environnement de JDK 11+ en utilisant une bibliothèque alternative. Mais ... des bibliothèques alternatives peuvent-elles être utilisées dans des applications commerciales? Quand j'ai vérifié la licence, j'étais inquiet pour la pièce

Eclipse ORB est ...

Extrait de la page d'accueil


Eclipse Distribution License 1.0 (BSD)
Eclipse Public License 2.0
un(Secondary) GNU General Public License, version 2 with the GNU Classpath Exception

Reconditionnement JBoss de l'ORB OpenJDK

À partir du fichier de licence


GNU General Public License, version 2 with the GNU Classpath Exception

Il semble qu'il puisse être utilisé même dans des applications commerciales non OSS où le code source ne peut pas être publié tant que le fichier jar est ajouté sur le chemin de classe et utilisé.

Recommended Posts

Essayez d'appeler le service CORBA sur Java 11+
Essayez d'appeler le service CORBA depuis Spring (Java)
Essayez d'appeler JavaScript en Java
Essayez d'utiliser l'analyse syntaxique de l'API COTOHA en Java
Essayez d'appeler des méthodes synchronisées à partir de plusieurs threads en Java
Essayez d'utiliser RocksDB avec Java
Essayez de développer Spresense avec Java (1)
Essayez le type fonctionnel en Java! ①
Appelons IBM Watson Assistant 2018-07-10 à partir du SDK Java.
Essayez le hooking global en Java à l'aide de la bibliothèque JNativeHook
Devinez le code de caractère en Java
Spécifiez l'emplacement Java dans eclipse.ini
Décompressez le fichier zip en Java
Essayez d'exécuter Selenuim 3.141.59 avec eclipse (java)
Essayez une expression If en Java
Analyser l'analyse syntaxique de l'API COTOHA en Java
Essayez d'exécuter AWS X-Ray en Java
Essayez d'implémenter Yuma en Java
Appelez la super méthode en Java
Obtenez le résultat de POST en Java
Essayez de résoudre Project Euler en Java
Référence Java à comprendre dans la figure
Essayez d'utiliser le service sur Android Oreo
Essayez d'implémenter l'ajout n-aire en Java
Appelez l'API de notification Windows en Java
J'ai essayé le nouveau yuan à Java
[Java] Utiliser la technologie cryptographique avec les bibliothèques standard
Organisation des notes dans la tête (Java-Arrangement)
Quelle est la méthode principale en Java?
Créons une application de calcul avec Java
Comment obtenir la date avec Java
Essayez d'appeler Nim depuis Java via JNI
L'histoire de l'écriture de Java dans Emacs
Entrée de la console en Java (comprendre le mécanisme)
Essayez d'utiliser la télécommande Wii en Java
Concernant les modificateurs transitoires et la sérialisation en Java
Essayez d'appeler Watson NLU qui semble prendre en charge le japonais à partir du SDK Java
L'histoire de la comparaison de chaînes de bas niveau en Java
[Java] Gestion des Java Beans dans la chaîne de méthodes
À propos de l'idée des classes anonymes en Java
ChatWork4j pour l'utilisation de l'API ChatWork en Java
Une histoire sur le JDK à l'ère de Java 11
Partition en Java
Mémo organisé dans la tête (syntaxe Java --Control)
Essayez de gratter environ 30 lignes en Java (sortie CSV)
Le type d'intersection introduit dans Java 10 est incroyable (?)
CORBA semble avoir été supprimé dans Java SE 11. .. ..
L'histoire de l'apprentissage de Java dans la première programmation
Essayez Java 8 Stream
Mesurer la taille d'un dossier avec Java
Essayez Azure Service Fabric (Java) sur un environnement Mac-Local
Essayez de créer un babillard en Java
Changements dans Java 11
Deuxième décoction: essayez une expression If en Java
Ressentez le passage du temps même à Java
Essayez d'utiliser Sourcetrail (version win) avec du code Java
Essayez d'utiliser l'API Cloud Vision de GCP en Java
Organisation des notes dans la tête (Java - édition d'instance)
Essayez d'utiliser Sourcetrail (version macOS) avec du code Java
Essayez d'accéder à l'ensemble de données depuis Java en utilisant JZOS