Versuchen Sie, den CORBA-Dienst unter Java 11+ aufzurufen

Zuvor wurde in "CORBA-Dienst von Spring (Java) aufrufen" beschrieben, wie der CORBA-Dienst mithilfe der Spring-Funktion unter Java 8 aufgerufen wird Ich habe es eingeführt, aber dieses Mal möchte ich vorstellen, wie der CORBA-Dienst mithilfe einer alternativen Bibliothek in Java 11+ aufgerufen wird (Warum CORBA in dieser Ära !?) Bitte fragen Sie nicht w).

Überprüfungsversion

JDK

NOTE:

In diesem Eintrag wird der CORBA-Dienst auch in Java erstellt ... Um das CORBA-Objekt über den Namensdienst abrufen zu können, ist auch die in JDK 8 enthaltene Funktion orbd erforderlich. (Wenn Sie ein CORBA-Objekt mithilfe einer IOR-Zeichenfolge ohne Verwendung eines Namensdienstes abrufen möchten, benötigen Sie keine Funktion, die orbd entspricht.) Da JDK 11 oder höher den Befehl orbd nicht enthält ... Dieser Eintrag verwendet JDK 8 nur zur Verwendung des Befehls orbd ... (Vollständig kompromittiert, aber dieser Eintrag konzentriert sich nur auf die Clientseite. Bitte beachte, dass

Spring Boot

Alternative Bibliothek

Was ist Eclipse ORB?

Grob gesagt scheint die in GlassFish verwendete ORB-Implementierung als unabhängiges Teilprojekt von Eclipse EE 4J entwickelt zu werden. Aus dieser Bibliothek werden nicht nur die ORB-Implementierung, sondern auch Tools wie idlj und rmic bereitgestellt. Diese Bibliothek wird als alternative Bibliothek in "JEP 320: Entfernen der Java EE- und CORBA-Module" eingeführt. Es ist gewesen.

Was ist JBoss-Umpacken des OpenJDK-ORB?

Es sieht so aus, als würde JBoss die ORB-Implementierung von OpenJDK 8 neu verteilen. Da die erste Version 2015 ist ... In JDK 9 veraltet, ist nicht klar, ob dies mit dem Verschwinden des Moduls in JDK 11 zusammenhängt.

Was ist JBoss-Umpacken der OpenJDK9-ORB-Ergänzungen?

Ist JBoss in OpenJDK 9 verschwunden? Es scheint eine Bibliothek zu sein, die ORB-bezogene Klassen neu verteilt. Hier "[Rufen Sie den CORBA-Dienst von Spring (Java) aus auf](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) " Die in verwendete Datei " com.sun.jndi.cosnaming.CNCtxFactory "ist enthalten.

Lassen Sie uns einen CORBA-Dienst in Java erstellen

"[Hier](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) In Bezug auf den Teil, der Java-Code aus der IDL-Datei generiert, gibt es in JDK 11+ keinen Befehl idlj, daher wird idlj von Eclipse ORB bereitgestellt Sie können eine entsprechende Klasse mithilfe von /corba/idlj/4.2.1/idlj-4.2.1.jar) (ausführbare JAR) generieren.

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

Versuchen Sie, den CORBA-Dienst in Java zu veröffentlichen

Alternative Bibliothek aktivieren

Da es in JDK 11+ keine ORB-Implementierung gibt, können Sie die erforderliche Klasse nicht finden und kompilieren, wenn Sie nichts tun. Zunächst müssen Sie also in der Lage sein, eine alternative Bibliothek zu verwenden.

Eclipse ORB

pom.xml


<dependency>
  <groupId>org.glassfish.corba</groupId>
  <artifactId>glassfish-corba-orb</artifactId>
  <version>4.2.1</version>
</dependency>
<dependency> <!--"Com" im Spring Boot.sun.jndi.cosnaming.So verwenden Sie "CNCTxFactory"-->
  <groupId>org.jboss.openjdk-orb</groupId>
  <artifactId>openjdk-orb-jdk9-supplement</artifactId>
  <version>1.0.3.Final</version>
  <exclusions>
  <exclusion> <!--Ausgeschlossen, da sich die ORB-Implementierung mit dem Eclipse-ORB überschneidet-->
    <groupId>org.jboss.openjdk-orb</groupId>
    <artifactId>openjdk-orb</artifactId>
    </exclusion>
  </exclusions>
</dependency>

JBoss-Neuverpackung des OpenJDK-ORB

pom.xml


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

Freigabe des CORBA-Dienstes

Veröffentlichen Sie den CORBA-Dienst, wenn der ORB verfügbar ist. Weitere Informationen finden Sie unter "[hier](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) ". Wenn die Umgebung so ist, dass sich der Befehl orbd von JDK 8 im Pfad befindet, muss der Quellcode nicht geändert werden, aber wenn sich der Pfad nicht im Pfad befindet ... Die folgenden Änderungen sind erforderlich.

    List<String> orbdStartupCommands = new ArrayList<>();
//    orbdStartupCommands.add("orbd");
    orbdStartupCommands.add("/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin/orbd"); //Geben Sie den Befehl mit dem vollständigen Pfad an
    orbdStartupCommands.addAll(Arrays.asList(ORB_OPTIONS));

Versuchen Sie, den CORBA-Dienst von Java aus aufzurufen

"[Hier](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) ”. Es gibt nichts, was repariert werden muss.

Versuchen Sie, den CORBA-Dienst mit der Spring-Funktion aufzurufen

"[Hier](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) ". Es gibt nichts, was repariert werden muss.

Demo-Anwendung

Obwohl es nicht genau mit dem in diesem Eintrag vorgestellten Inhalt übereinstimmt, wird auf GitHub eine Demo-Anwendung mit demselben Inhalt veröffentlicht.

Zusammenfassung

Das CORBA-Modul ist in JDK 11 verschwunden, aber ich habe festgestellt, dass es in der Umgebung von JDK 11+ mithilfe einer alternativen Bibliothek verwendet werden kann. Aber ... können alternative Bibliotheken in kommerziellen Anwendungen verwendet werden? Als ich die Lizenz überprüfte, machte ich mir Sorgen um das Teil

Eclipse ORB ist ...

Homepage-Auszug


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

JBoss-Neuverpackung des OpenJDK-ORB

Aus der Lizenzdatei


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

Es scheint, dass es auch in kommerziellen Nicht-OSS-Anwendungen verwendet werden kann, in denen der Quellcode nicht veröffentlicht werden kann, solange die JAR-Datei zum Klassenpfad hinzugefügt und verwendet wird.

Recommended Posts

Versuchen Sie, den CORBA-Dienst unter Java 11+ aufzurufen
Versuchen Sie, den CORBA-Dienst von Spring (Java) aus aufzurufen.
Versuchen Sie, JavaScript in Java aufzurufen
Versuchen Sie es mit der Syntaxanalyse der COTOHA-API in Java
Versuchen Sie, synchronisierte Methoden aus mehreren Threads in Java aufzurufen
Versuchen Sie es mit RocksDB mit Java
Lassen Sie uns Spresense mit Java entwickeln (1)
Probieren Sie den Funktionstyp in Java aus! ①
Rufen wir IBM Watson Assistant 2018-07-10 aus dem Java SDK auf.
Versuchen Sie es mit globalem Hooking in Java mithilfe der JNativeHook-Bibliothek
Errate den Zeichencode in Java
Geben Sie den Java-Speicherort in eclipse.ini an
Entpacken Sie die Zip-Datei in Java
Versuchen Sie, Selenuim 3.141.59 mit Eclipse (Java) auszuführen.
Versuchen Sie einen If-Ausdruck in Java
Analysieren der COTOHA-API-Syntaxanalyse in Java
Versuchen Sie, AWS X-Ray in Java auszuführen
Versuchen Sie, Yuma in Java zu implementieren
Rufen Sie die Super-Methode in Java auf
Holen Sie sich das Ergebnis von POST in Java
Versuchen Sie, Project Euler in Java zu lösen
Java-Referenz zum Verständnis in der Abbildung
Versuchen Sie, den Dienst auf Android Oreo zu verwenden
Versuchen Sie, n-ary Addition in Java zu implementieren
Rufen Sie die Windows-Benachrichtigungs-API in Java auf
Ich habe das neue Yuan-Problem in Java ausprobiert
[Java] Verwenden Sie kryptografische Technologie mit Standardbibliotheken
Notizen im Kopf organisieren (Java-Arrangement)
Was ist die Hauptmethode in Java?
Lassen Sie uns eine Taschenrechner-App mit Java erstellen
So erhalten Sie das Datum mit Java
Versuchen Sie, Nim von Java über JNI aufzurufen
Die Geschichte des Schreibens von Java in Emacs
Konsoleneingabe in Java (Verständnis des Mechanismus)
Versuchen Sie es mit der Wii-Fernbedienung in Java
In Bezug auf transiente Modifikatoren und Serialisierung in Java
Versuchen Sie, Watson NLU, die Japanisch zu unterstützen scheint, vom Java SDK aus aufzurufen
Die Geschichte des einfachen String-Vergleichs in Java
[Java] Behandlung von Java Beans in der Methodenkette
Über die Idee anonymer Klassen in Java
ChatWork4j für die Verwendung der ChatWork-API in Java
Eine Geschichte über das JDK in der Java 11-Ära
Partisierung in Java
Organisiertes Memo im Kopf (Java - Control Syntax)
Versuchen Sie, etwa 30 Zeilen in Java zu kratzen (CSV-Ausgabe)
Der in Java 10 eingeführte Schnittpunkttyp ist erstaunlich (?)
CORBA scheint in Java SE 11 entfernt zu sein. .. ..
Die Geschichte des Lernens von Java in der ersten Programmierung
Probieren Sie Java 8 Stream aus
Messen Sie die Größe eines Ordners mit Java
Probieren Sie Azure Service Fabric (Java) in einer Mac-Local-Umgebung aus
Versuchen Sie, ein Bulletin Board in Java zu erstellen
Änderungen in Java 11
Zweite Abkochung: Versuchen Sie einen If-Ausdruck in Java
Spüren Sie den Lauf der Zeit auch in Java
Versuchen Sie es mit Sourcetrail (Win-Version) mit Java-Code
Versuchen Sie, die Cloud Vision-API von GCP in Java zu verwenden
Notizen im Kopf organisieren (Java - Instance Edition)
Versuchen Sie es mit Sourcetrail (MacOS-Version) mit Java-Code
Versuchen Sie, mit JZOS von Java aus auf das Dataset zuzugreifen