[JAVA] So geben Sie ein Array für den Rückgabewert / das Rückgabeargument einer Methode in der CORBA IDL-Datei an

Einführung

Heutzutage benutzt niemand CORBA! ?? Was beiseite: thermometer_face:

Was ist CORBA überhaupt?

Ich denke, es wird so viel herauskommen, wie Sie wollen, wenn Sie googeln ...

Abkürzung für Common Object Request Broker Architecture (Colva Cova). Ein Standard zum Verknüpfen der verteilten Verarbeitung, der nur sprachunabhängige Schnittstellen mit IDL (Interface Definition Language) definiert. In COBRA wird Code zusammen mit Informationen zu seiner Funktion und Aufrufmethode gekapselt, und CORBA-kompatible Komponenten können unabhängig von Sprache oder Betriebssystem miteinander kommunizieren. Mit anderen Worten, wenn Sie die in IDL beschriebene Schnittstelle implementieren, können Sie zwischen verschiedenen Sprachen (Java, C usw.) kommunizieren: schreien_katze :.

Referenzseite

In diesem Fall wird die in IDL beschriebene Schnittstelle mit dem Befehl idlj in Java konvertiert ... Ich war jedoch süchtig danach, weil die IDL-Syntax und die Java-Syntax unterschiedlich sind. (Der Befehl idlj kann durch Installieren des JDK verwendet werden.)

IDL-Beispiel

Wenn Sie beispielsweise eine Methode zur Berechnung der Verbrauchssteuer definieren, indem Sie den Preis als Argument übergeben, lautet diese wie folgt.

test.idl


module com{
  module neriudon {
    module corba {
      interface CalcTax{
      double calc(in long price);
      };
    };
  };
};

module entspricht Java package und IDL long entspricht Java int. Weitere Informationen finden Sie unter Java IDL: Zuordnung von IDL zu Java-Sprache.

Das Hauptthema ist also von hier. Die Konvertierungstabelle wird auf der ↑ Site beschrieben. Was kann ich jedoch tun, wenn ich ein Array für den Rückgabewert / das Rückgabeargument der Methode angeben möchte?

Also, als Ergebnis der Untersuchung ...

Is it possible to accept a string array as argument in corba idl file

Es scheint, dass das Array im Voraus mit typedef definiert werden muss. Es sieht aus wie eine Struktur. Das Folgende ist eine Methode zum Konvertieren eines Arrays von Strings in ein Byte-Array.

Converter.idl


module com{
  module neriudon {
    module corba {
      typedef sequence<octet> response;
      typedef sequence<string> request;
      interface Conveter
      {
        response convert(in request request);
      };
    };
  };
};

Lassen Sie uns dies nun mit dem Befehl idlj in eine Java-Datei konvertieren.

Wenn Sie "idlj -fall -td ./. / Converter.idl" ausführen, wird Java-Code ähnlich dem folgenden ausgegeben:

生成結果

Erweitern Sie "ConveterPOA", wenn Sie die generierte Schnittstelle implementieren möchten.

ConverterImpl.java


package com.neriudon.corba;

public class ConverterImpl extends ConveterPOA {

  @Override
  public byte[] convert(String[] request) {
    // TODO Auto-generated method stub
    return null;
  }
}

Ich werde den Teil weglassen, der das Objekt tatsächlich über die IOR-Datei usw. Kommuniziert: frowning2 :.

Übrigens gibt es auch ein Projekt namens JacORB, wenn es um CORBA in Java geht.

Wie ich diesen Artikel gepostet habe

Ich bin süchtig nach dem Unterschied zwischen IDL-Grammatik und Java-Grammatik: cry :. Die Byte-Notation und die Array-Notation sind unabhängig voneinander Treffer, aber es fiel mir schwer, ein Beispiel für die Eingabe / Ausgabe von Methoden zu finden: confounded :. Außerdem war ich überrascht, dass der Codeblock von Qiita IDL unterstützte: stick_out_tongue_winking_eye :.

Recommended Posts

So geben Sie ein Array für den Rückgabewert / das Rückgabeargument einer Methode in der CORBA IDL-Datei an
So rufen Sie den Hashwert in einem Array in Ruby ab
So geben Sie den Wert aus, wenn sich ein Array im Array befindet
So ermitteln Sie die Länge einer Audiodatei mit Java
[Java] So suchen Sie mit der Methode includes nach Werten in einem Array (oder einer Liste)
[Swift] So ermitteln Sie die Anzahl der Elemente in einem Array (Super Basic)
[Hinweis] [Anfänger] Schreiben, wenn der Wert eines Array-Elements in einem sich wiederholenden Satz von Ruby geändert wird
[Swift5] So erhalten Sie ein Array und eine Reihe von Unterschieden zwischen Arrays
So erhöhen Sie den Wert von Map in einer Zeile in Java
Schritte zum Ausführen von Spring Boot beziehen sich auf die Werte in der Eigenschaftendatei
So konvertieren Sie ein Array von Strings mit der Stream-API in ein Array von Objekten
So ändern Sie den Wert einer Variablen an einem Haltepunkt in IntelliJ
Android-Entwicklung, wie man den Wert des JSON-Objekts auf null überprüft
Ausgabe der Verwendung der Slice-Methode
So erstellen Sie eine Beurteilungsmethode, um nach einem beliebigen Zeichen im Array zu suchen
So legen Sie Umgebungsvariablen in der Eigenschaftendatei der Spring-Boot-Anwendung fest
[Java] So erhalten Sie den Maximalwert von HashMap
So geben Sie den Ressourcenpfad beim HTML-Import an
So konvertieren Sie eine Datei in ein Byte-Array in Java
So debuggen Sie die generierte JAR-Datei mit Eclipse
[Schienen] So zeigen Sie Bilder in der Ansicht an
So ermitteln Sie den Gesamtwert, den Durchschnittswert usw. eines zweidimensionalen Arrays (mehrdimensionales Array) -java
So installieren Sie Docker in der lokalen Umgebung einer vorhandenen Rails-App [Rails 6 / MySQL 8]
So erhalten Sie den Klassennamen des Arguments von LoggerFactory.getLogger, wenn Sie SLF4J in Java verwenden
Verwendung von git mit der Leistung von jgit in einer Umgebung ohne git-Befehle
Anfordern durch Übergeben eines Arrays an eine Abfrage mit dem HTTP-Client von Ruby
Übergeben Sie ein Argument an die Methode und erhalten Sie das Ergebnis der Operation als Rückgabewert
Beispielcode zum Zuweisen eines Werts in der Eigenschaftendatei zu einem Feld des erwarteten Typs
So erhalten Sie den Namen einer Klasse / Methode, die in Java ausgeführt wird
Verwendung der Getter / Setter-Methode (in Objektorientierung)
[Ruby] Zähle eine gerade Zahl in einem Array mit der geraden? -Methode
9 Entspricht dem Rückgabewert
So ändern Sie eine Zeichenfolge in einem Array in eine Zahl in Ruby
Eine Methode, die Transformationen parallel auf alle Elemente anwendet und ein Array von Rückgabewerten zurückgibt, die ihre Reihenfolge beibehalten
Erstellen Sie eine Methode, um den Steuersatz in Java zurückzugeben
So ändern Sie den Einstellwert von Springboot Hikari CP
Hinzufügen von Elementen ohne Angabe der Länge des Arrays
So fügen Sie dieselben Indizes in ein verschachteltes Array ein
So leiten Sie den letzten Tag des Monats in Java ab
So ändern Sie den Inhalt der JAR-Datei, ohne sie zu dekomprimieren
Speicherort der Methodendefinition Zusammenfassung der zu überprüfenden Informationen Wenn im Projekt und in Rails / Gem definiert
[Ruby] Wie man gerade oder ungerade Zahlen in einem Array zählt
Es reagiert nicht auf die Beschreibung in .js der Packs-Datei
So zeigen Sie 0 auf der linken Seite des Standardeingabewerts an
Korrigieren Sie den Namen der Kriegsdatei auf den in Maven festgelegten
[Rails] Sprechen Sie darüber, wie Sie auf den Rückgabewert von where achten
Die Geschichte von toString () beginnt mit der Übergabe eines Arrays an System.out.println
[Rails] So lassen Sie die Anzeige der Zeichenfolge der link_to-Methode weg
So erhalten Sie die ID des automatisch inkrementierten PRIMAY-Schlüssels in MyBatis
Verwandeln Sie ein Array von Strings in eine Liste von Ganzzahlen in Java
Speichern der im Textbereich eingegebenen Informationen in einer Variablen in der Methode
[chown] So ändern Sie den Eigentümer einer Datei oder eines Verzeichnisses
Ich möchte den Wert von Attribute in Selenium of Ruby ändern
Verwendung der link_to-Methode
Verwendung der include? -Methode