Introduction
Cette rubrique décrit comment installer et configurer la trousse SDK Oracle Cloud Infrastructure pour Java.
Cette rubrique décrit comment installer et configurer la trousse SDK Oracle Cloud Infrastructure pour Java.
La trousse SDK pour Java est préconfigurée avec vos données d'identification et prête à être utilisée immédiatement à partir de Cloud Shell. Pour plus d'informations sur l'utilisation de la trousse SDK pour Java à partir de Cloud Shell, voir Démarrage rapide de Cloud Shell : Trousse SDK pour Java.
Installation avec le gestionnaire de ressources
Vous pouvez utiliser le gestionnaire de ressources pour installer la trousse SDK Oracle Cloud sur une instance de calcul dans votre compartiment. La trousse SDK Oracle Cloud inclut la trousse SDK pour Java, ainsi que d'autres outils de développement Oracle.
Téléchargement de la trousse SDK à partir de GitHub
Vous pouvez télécharger la trousse SDK pour Java en tant qu'archive zip à partir de GitHub. Le téléchargement contient la trousse SDK, toutes ses dépendances, la documentation, ainsi que des exemples. Pour assurer la meilleure compatibilité et éviter des problèmes, utilisez la version des dépendances incluses dans l'archive. Certains problèmes notables sont les suivants :
- Bouncy Castle : Les ensembles de trousse SDK 1.60 (inclus dans cette distribution). Si vous avez besoin d'une conformité FIPS, voir Utilisation de BC-FIPS au lieu de Bouncy Castle.
- Jersey Core et Client : Ensemble SDK 2.24.1, requis pour la prise en charge des chargements d'objets volumineux vers le Stockage d'objets. Les versions plus anciennes ne prennent pas en charge les chargements supérieurs à ~2.1 Go.
- API Jax-RS : Ensemble SDK 2.0.1 de la spécification. Les versions plus anciennes entraîneront des problèmes.
La trousse SDK pour Java est livrée avec Jersey (inclus dans cette distribution), mais vous pouvez également utiliser votre propre implémentation JAX-RS. Pour plus de détails, voir Utilisation de votre propre mise en oeuvre JAX-RS
Téléchargement de la trousse SDK à partir de Maven ou de JCenter
Installation avec yum
Si vous utilisez Oracle Linux 7 ou 8, vous pouvez utiliser yum pour installer la trousse SDK pour Java d'OCI :
Pour Oracle Linux 7 :
sudo yum-config-manager --enable ol7_developer
sudo yum install java-oci-sdk
sudo yum-config-manager --enable ol8_developer
sudo yum install java-oci-sdk
Le fichier jar pour OCI jar se trouve dans : /usr/lib64/java-oci-sdk/lib/oci-java-sdk-full-<version>.jar
, et les bibliothèques tierces dans /usr/lib64/java-oci-sdk/third-party/lib
.
/usr/lib64/java-oci-sdk/lib/oci-java-sdk-full-<version>.jar:/usr/lib64/java-oci-sdk/third-party/lib/*
Par exemple :
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
Configuration de la trousse SDK
Les services de trousse SDK ont besoin de deux types de configuration : données d'identification et paramètres HTTP côté client.
Configuration des données d'identification
Tout d'abord, vous devez configurer vos données d'identification et votre fichier de configuration. Pour les instructions, voir Fichier de configuration des trousses SDK et de l'interface de ligne de commande.
Vous devez ensuite configurer le client pour utiliser les données d'identification. Les données d'identification sont abstraites au moyen d'une interface AuthenticationDetailsProvider
. Les clients peuvent toutefois mettre en oeuvre ce processus. Nous avons inclus une simple classe POJO/générateur pour vous aider à effectuer cette tâche (SimpleAuthenticationDetailsProvider
).
-
Vous pouvez charger une configuration avec ou sans profil :
ConfigFile config = ConfigFileReader.parse("~/.oci/config"); ConfigFile configWithProfile = ConfigFileReader.parse("~/.oci/config", "DEFAULT");
-
Le fournisseur de clés privées peut être créé directement avec le chemin d'accès au fichier ou à l'aide du fichier de configuration :
Supplier<InputStream> privateKeySupplier = new SimplePrivateKeySupplier("~/.oci/oci_api_key.pem"); Supplier<InputStream> privateKeySupplierFromConfigEntry = new SimplePrivateKeySupplier(config.get("key_file"));
-
Pour créer un fournisseur d'authentification avec le générateur :
AuthenticationDetailsProvider provider = SimpleAuthenticationDetailsProvider.builder() .tenantId("myTenantId") .userId("myUserId") .fingerprint("myFingerprint") .privateKeySupplier(privateKeySupplier) .build();
-
Pour créer un fournisseur d'authentification à l'aide du générateur avec un fichier de configuration :
AuthenticationDetailsProvider provider = SimpleAuthenticationDetailsProvider.builder() .tenantId(config.get("tenancy")) .userId(config.get("user")) .fingerprint(config.get("fingerprint")) .privateKeySupplier(privateKeySupplier) .build();
-
Enfin, si vous utilisez des clés de fichier de configuration standard et l'emplacement du fichier de configuration standard, vous pouvez simplifier cette opération à l'aide de
ConfigFileAuthenticationDetailsProvider
:AuthenticationDetailsProvider provider = new ConfigFileAuthenticationDetailsProvider("ADMIN_USER");
Configuration des options côté client
Créez une configuration côté client au moyen de la classe ClientConfiguration
. Si vous ne fournissez pas votre propre configuration, la trousse SDK pour Java utilise une configuration par défaut. Pour définir votre propre configuration, utilisez les éléments suivants :
ClientConfiguration clientConfig
= ClientConfiguration.builder()
.connectionTimeoutMillis(3000)
.readTimeoutMillis(60000)
.build();
Une fois que vous avez une configuration de données d'identification et une configuration de client facultative, vous pouvez commencer à créer des instances de service.
Pour un exemple de code montrant comment configurer et utiliser les temporisations de connexion et de lecture dans votre configuration de client, voir Exemple de temporisation dans une configuration de client sur GitHub.
Configuration des options personnalisées
Dans le fichier de configuration, vous pouvez insérer des paires clé-valeur personnalisées que vous définissez, puis les référencer si nécessaire. Par exemple, vous pouvez spécifier un ID compartiment fréquemment utilisé dans le fichier de configuration :
[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>
Vous pouvez ensuite extraire la valeur :
ConfigFile config
= ConfigFileReader.parse("~/.oci/config");
String compartmentId = config.get("custom_compartment_id");
Utilisation de la trousse SDK pour Java
Il existe deux façons d'utiliser la trousse SDK Oracle Cloud Infrastructure pour Java dans votre projet.
-
Importez
oci-java-sdk-bom
, suivi de la bibliothèque de client HTTP et de vos dépendances de projet.La bibliothèque de client HTTP est configurable; aucune bibliothèque n'est sélectionnée par défaut. La trousse SDK OCI pour Java offre actuellement les bibliothèques de client HTTP suivantes parmi lesquelles choisir :
- Jakarta EE 8/Jersey 2 -
oci-common-httpclient-jersey
- Jakarta EE 9/Jersey 3 -
oci-common-httpclient-jersey3
Vous devez choisir explicitement la bibliothèque en déclarant une dépendance à
oci-java-sdk-common-httpclient-jersey
ouoci-java-sdk-common-httpclient-jersey3
. Par exemple :<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>
- Jakarta EE 8/Jersey 2 -
Ajoutez la dépendance ombrée
oci-java-sdk-shaded-full
à votre fichier pom. Vous pouvez utiliser la dépendance ombrée pour inclure toutes les classes de tierce partie et les dépendances transitives en les renommant et en les incluant dans votre projet. Elle contient un fichier "Uber JAR" (ou Fat JAR), qui est en fait une combinaison de plusieurs fichiers JAR. Tous les ensembles contenus dans le fichier "Uber JAR" sont renommés. Cela évite les conflits entre les dépendances de la trousse SDK Oracle Cloud Infrastructure et les dépendances de tierce partie que vous pouvez utiliser dans votre projet.Par exemple, les classes situées dans
org.apache.commons
sont déplacées versshaded.com.oracle.oci.javasdk.org.apache.commons
.Le contenu du fichier "Uber JAR" est le suivant :
shaded/com/oracle/oci/javasdk/org/apache/commons/codec/BinaryDecoder.class shaded/com/oracle/oci/javasdk/org/apache/commons/logging/LogFactory.class
Si vous utilisez Maven pour gérer vos dépendances, vous pouvez trouver la dernière dépendance ombrée dans le référentiel Maven.
Ajoutez la dernière version de
oci-java-sdk-shaded-full
à vos dépendances :<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>