Erste Schritte

In diesem Thema wird beschrieben, wie Sie das Oracle Cloud Infrastructure-SDK für Java installieren und konfigurieren.

In diesem Thema wird beschrieben, wie Sie das Oracle Cloud Infrastructure-SDK für Java installieren und konfigurieren.

Tipp

Das SDK für Java ist mit Ihren Zugangsdaten vorkonfiguriert und sofort in Cloud Shell einsatzbereit. Weitere Informationen zur Verwendung des SDK für Java aus Cloud Shell finden Sie unter SDK für Java mit Cloud Shell - Schnellstart.

Mit Resource Manager installieren

Sie können Resource Manager verwenden, um das Oracle Cloud Development Kit auf einer Compute-Instanz in Ihrem Compartment zu installieren. Das Oracle Cloud Development Kit enthält das SDK für Java zusammen mit anderen Oracle-Entwicklungstools.

SDK von GitHub herunterladen

Sie können das SDK für Java als ZIP-Archiv von GitHub herunterladen. Es enthält das SDK, alle Abhängigkeiten, Dokumentation und Beispiele. Um optimale Kompatibilität zu gewährleisten und Probleme zu vermeiden, verwenden Sie die im Archiv enthaltene Version der Abhängigkeiten. Einige erwähnenswerte Probleme:

  • Bouncy Castle: SDK-Bundles 1.60 (in dieser Distribution enthalten). Wenn Sie FIPS-Compliance benötigen, finden Sie weitere Informationen unter BC-FIPS statt Bouncy Castle verwenden.
  • Jersey Core und Client: Im SDK-Bundle ist Version 2.24.1 enthalten, die für Large-Object-Uploads in Object Storage erforderlich ist. Ältere Versionen unterstützen keine Uploads über ~2,1 GB.
  • Jax-RS-API: Im SDK-Bundle ist Version 2.0.1 der Spezifikation enthalten. Ältere Versionen führen zu Problemen.
Hinweis

Das SDK für Java ist mit Jersey gebündelt (in dieser Distribution enthalten), Sie können aber auch Ihre eigene JAX-RS-Implementierung verwenden. Weitere Einzelheiten finden Sie unter Eigene JAX-RS-Implementierung verwenden.

Mit yum installieren

Wenn Sie Oracle Linux 7 oder 8 verwenden, können Sie das OCI-SDK für Java mit Yum installieren.

Für Oracle Linux 7:

sudo yum-config-manager --enable ol7_developer
sudo yum install java-oci-sdk
Für Oracle Linux 8:
sudo yum-config-manager --enable ol8_developer
sudo yum install java-oci-sdk

Die OCI-JAR-Datei befindet sich in /usr/lib64/java-oci-sdk/lib/oci-java-sdk-full-<version>.jar. Drittanbieter-Librarys befinden sich in /usr/lib64/java-oci-sdk/third-party/lib.

Sie können dem Classpath die folgenden Einträge hinzufügen: /usr/lib64/java-oci-sdk/lib/oci-java-sdk-full-<version>.jar:/usr/lib64/java-oci-sdk/third-party/lib/*. Beispiel:
javac -cp "/usr/lib64/java-oci-sdk/third-party/lib/*:/usr/lib64/java-oci-sdk/lib/oci-java-sdk-full-1.8.2.jar" MyFile.java

SDK konfigurieren

Die SDK-Services benötigen zwei Konfigurationstypen: Zugangsdaten und clientseitige HTTP-Einstellungen.

Zugangsdaten konfigurieren

Zuerst müssen Sie Ihre Zugangsdaten und die Konfigurationsdatei einrichten. Anweisungen hierzu finden Sie unter SDK- und CLI-Konfigurationsdatei.

Als Nächstes müssen Sie den Client so einrichten, dass er die Zugangsdaten verwendet. Die Zugangsdaten werden über eine AuthenticationDetailsProvider-Schnittstelle abstrahiert. Clients können dies jedoch implementieren. Wir haben eine einfache POJO/Builder-Klasse aufgenommen, die Sie bei dieser Aufgabe unterstützt (SimpleAuthenticationDetailsProvider).

  • Sie können eine Konfiguration mit oder ohne Profil laden:

    ConfigFile config 
        = ConfigFileReader.parse("~/.oci/config");
    ConfigFile configWithProfile 
        = ConfigFileReader.parse("~/.oci/config", "DEFAULT");
  • Der Private-Key-Lieferant kann direkt mit dem Dateipfad oder mit der Konfigurationsdatei erstellt werden:

    Supplier<InputStream> privateKeySupplier 
        = new SimplePrivateKeySupplier("~/.oci/oci_api_key.pem");
    Supplier<InputStream> privateKeySupplierFromConfigEntry 
        = new SimplePrivateKeySupplier(config.get("key_file"));
  • So erstellen Sie einen Authentifizierungsprovider mit dem Builder:

    AuthenticationDetailsProvider provider 
        = SimpleAuthenticationDetailsProvider.builder()
            .tenantId("myTenantId")
            .userId("myUserId")
            .fingerprint("myFingerprint")
            .privateKeySupplier(privateKeySupplier)
            .build();
  • So erstellen Sie einen Authentifizierungsprovider mit dem Builder mit einer Konfigurationsdatei:

    AuthenticationDetailsProvider provider 
        = SimpleAuthenticationDetailsProvider.builder()
            .tenantId(config.get("tenancy"))
            .userId(config.get("user"))
            .fingerprint(config.get("fingerprint"))
            .privateKeySupplier(privateKeySupplier)
            .build();
  • Wenn Sie schließlich die Standardkonfigurationsdateischlüssel und den Standardspeicherort der Konfigurationsdatei verwenden, können Sie dies mit ConfigFileAuthenticationDetailsProvider noch weiter vereinfachen:

    AuthenticationDetailsProvider provider 
        = new ConfigFileAuthenticationDetailsProvider("ADMIN_USER");

Clientseitige Optionen konfigurieren

Erstellen Sie eine clientseitige Konfiguration über die Klasse ClientConfiguration. Wenn Sie keine eigene Konfiguration angeben, verwendet das SDK für Java eine Standardkonfiguration. Um Ihre eigene Konfiguration anzugeben, verwenden Sie:

ClientConfiguration clientConfig 
    = ClientConfiguration.builder()
        .connectionTimeoutMillis(3000)
        .readTimeoutMillis(60000)
        .build();

Wenn sowohl eine Zugangsdatenkonfiguration als auch die optionale Clientkonfiguration vorhanden sind, können Sie mit dem Erstellen von Serviceinstanzen beginnen.

Ein Codebeispiel, das zeigt, wie Verbindungs- und Lesetimeouts in der Clientkonfiguration eingerichtet und verwendet werden, finden Sie im Beispiel für Clientkonfigurationstimeout auf GitHub.

Benutzerdefinierte Optionen konfigurieren

In der Konfigurationsdatei können Sie benutzerdefinierte Schlüssel/Wert-Paare einfügen, die Sie definieren, und diese dann nach Bedarf referenzieren. Sie können beispielsweise eine häufig verwendete Compartment-ID in der Konfigurationsdatei angeben:

[DEFAULT]
user=ocid1.user.oc1..aaaaaaaat5nvwcna5j6aqzjcmdy5eqbb6qt2jvpkanghtgdaqedqw3rynjq
fingerprint=20:3b:97:13:55:1c:5b:0d:d3:37:d8:50:4e:c5:3a:34
key_file=~/.oci/oci_api_key.pem
tenancy=ocid1.tenancy.oc1..<unique_ID>


custom_compartment_id=ocid1.compartment.oc1..<unique_ID>



Dann können Sie den Wert abrufen:

ConfigFile config 
    = ConfigFileReader.parse("~/.oci/config");

String compartmentId = config.get("custom_compartment_id");

SDK für Java verwenden

Es gibt zwei Möglichkeiten, das Oracle Cloud Infrastructure-SDK für Java in einem Projekt zu verwenden.

  • Importieren Sie oci-java-sdk-bom, gefolgt von der HTTP-Client-Library und den Projektabhängigkeiten.

    Die HTTP-Client-Library kann konfiguriert werden. Standardmäßig ist keine Library ausgewählt. Das OCI-SDK für Java stellt derzeit folgende HTTP-Client-Librarys zur Auswahl:

    Sie müssen die Bibliothek explizit auswählen, indem Sie eine Abhängigkeit von oci-java-sdk-common-httpclient-jersey oder oci-java-sdk-common-httpclient-jersey3 deklarieren. Beispiel:

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.oracle.oci.sdk</groupId>
          <artifactId>oci-java-sdk-bom</artifactId>
          <!-- replace the version below with your required version -->
          <version>3.0.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    <dependencies>
      <dependency>
        <!-- Since this is the "application" pom.xml, choose the httpclient to use. -->
        <groupId>com.oracle.oci.sdk</groupId>
        <artifactId>oci-java-sdk-common-httpclient-jersey</artifactId>
      </dependency>
      <dependency>
        <groupId>com.oracle.oci.sdk</groupId>
        <artifactId>oci-java-sdk-audit</artifactId>
      </dependency>
      <dependency>
        <groupId>com.oracle.oci.sdk</groupId>
        <artifactId>oci-java-sdk-core</artifactId>
      </dependency>
      <dependency>
        <groupId>com.oracle.oci.sdk</groupId>
        <artifactId>oci-java-sdk-database</artifactId>
      </dependency>
      <!-- more dependencies if needed -->
    </dependencies>
  • Fügen Sie der pom-Datei die schattierte Abhängigkeit oci-java-sdk-shaded-full hinzu. Mit der schattierten Abhängigkeit können Sie alle Drittanbieterklassen und deren transitive Abhängigkeiten einbinden, indem Sie diese umbenennen und in Ihr Projekt aufnehmen. Sie enthält eine Uber-JAR, bei der es sich im Grunde um eine Kombination aus mehreren JARs handelt. Alle Packages in der Uber-JAR werden umbenannt. Dadurch werden Konflikte zwischen Oracle Cloud Infrastructure-SDK-Abhängigkeiten und Drittanbieter-Abhängigkeiten umgangen, die Sie möglicherweise in Ihrem Projekt einsetzen.

    Beispiel: Die Klassen aus org.apache.commons werden in shaded.com.oracle.oci.javasdk.org.apache.commons verschoben.

    Die Uber-JAR-Datei hat folgenden Inhalt:

    shaded/com/oracle/oci/javasdk/org/apache/commons/codec/BinaryDecoder.class
    shaded/com/oracle/oci/javasdk/org/apache/commons/logging/LogFactory.class

    Wenn Sie die Abhängigkeiten mit Maven verwalten, finden Sie die jeweils neueste schattierte Abhängigkeit im Maven-Repository.

    Fügen Sie den Abhängigkeiten die neueste Version von oci-java-sdk-shaded-full hinzu:

    <dependency>
      <groupId>com.oracle.oci.sdk</groupId>
      <artifactId>oci-java-sdk-shaded-full</artifactId>
      <!-- replace the version below with the latest version -->
      <version>3.0.0</version>
    <dependency>