Introducción
En este tema se describe cómo instalar y configurar el SDK de Java para Oracle Cloud Infrastructure.
En este tema se describe cómo instalar y configurar el SDK de Java para Oracle Cloud Infrastructure.
El SDK para Java está preconfigurado con sus credenciales y listo para su uso inmediato desde Cloud Shell. Para obtener más información sobre el uso del SDK para Java desde Cloud Shell, consulte Inicio rápido de Cloud Shell del SDK para Java.
Instalación con Resource Manager
Puede utilizar Resource Manager para instalar Oracle Cloud Development Kit en una instancia de Compute en el compartimento. Oracle Cloud Development Kit incluye el SDK para Java, junto con otras herramientas de desarrollo de Oracle.
Descarga del SDK de GitHub
Puede descargar el SDK para Java como archivo zip de GitHub. Contiene el SDK, todas sus dependencias, documentación y ejemplos. Para obtener la mejor compatibilidad y evitar problemas, use la versión de las dependencias incluidas en el archivo. Algunos problemas notables son:
- Bouncy Castle: el SDK incorpora la versión 1.60 (incluida en esta distribución). Si necesita conformidad de FIPS, consulte Uso de BC-FIPS en lugar de Bouncy Castle.
- Núcleo de Jersey y cliente: el SDK incluye la versión 2.24.1, que es necesaria para soportar cargas de objetos grandes en Object Storage. Las versiones anteriores no soportan cargas superiores a ~2,1 GB.
- API de Jax-RS: el SDK incluye la versión 2.0.1 de la especificación. Las versiones anteriores causarán problemas.
El SDK para Java está incluido en Jersey (incluido en esta distribución), pero también puede utilizar su propia implantación JAX-RS. Para obtener más información, consulte Uso de su propia implantación de JAX-RS
Descarga del SDK de Maven o JCenter
Instalación con yum
Si utiliza Oracle Linux 7 u 8, puede utilizar yum para instalar el SDK de OCI para Java.
Para 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
El archivo jar de OCI se ubicará en: /usr/lib64/java-oci-sdk/lib/oci-java-sdk-full-<version>.jar
y las bibliotecas de terceros estarán en /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/*
Por ejemplo:
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
Configuración del SDK
Los servicios de SDK necesitan dos tipos de configuración: credenciales y valores HTTP del cliente.
Configuración de credenciales
En primer lugar, debe configurar sus credenciales y el archivo de configuración. Para obtener instrucciones, consulte Archivo de configuración de SDK y CLI.
A continuación, debe configurar el cliente para usar las credenciales. Las credenciales se sintetizan mediante una interfaz AuthenticationDetailsProvider
. Sin embargo, los clientes pueden implantar esta opción. Hemos incluido una clase de POJO/creador sencilla que le ayudará con esta tarea (SimpleAuthenticationDetailsProvider
).
-
Puede cargar una configuración con o sin un perfil:
ConfigFile config = ConfigFileReader.parse("~/.oci/config"); ConfigFile configWithProfile = ConfigFileReader.parse("~/.oci/config", "DEFAULT");
-
El proveedor de claves privadas se puede crear con la ruta de acceso de archivo directamente o mediante el archivo de configuración:
Supplier<InputStream> privateKeySupplier = new SimplePrivateKeySupplier("~/.oci/oci_api_key.pem"); Supplier<InputStream> privateKeySupplierFromConfigEntry = new SimplePrivateKeySupplier(config.get("key_file"));
-
Para crear un proveedor de autenticación con el creador:
AuthenticationDetailsProvider provider = SimpleAuthenticationDetailsProvider.builder() .tenantId("myTenantId") .userId("myUserId") .fingerprint("myFingerprint") .privateKeySupplier(privateKeySupplier) .build();
-
Para crear un proveedor de autenticación mediante el creador con un archivo de configuración:
AuthenticationDetailsProvider provider = SimpleAuthenticationDetailsProvider.builder() .tenantId(config.get("tenancy")) .userId(config.get("user")) .fingerprint(config.get("fingerprint")) .privateKeySupplier(privateKeySupplier) .build();
-
Por último, si utiliza claves de archivo de configuración estándar y la ubicación de archivo de configuración estándar, puede simplificar el proceso con
ConfigFileAuthenticationDetailsProvider
:AuthenticationDetailsProvider provider = new ConfigFileAuthenticationDetailsProvider("ADMIN_USER");
Configuración de opciones del cliente
Cree una configuración del cliente a través de la clase ClientConfiguration
. Si no proporciona su propia configuración, el SDK para Java utiliza una configuración por defecto. Para proporcionar su propia configuración, utilice lo siguiente:
ClientConfiguration clientConfig
= ClientConfiguration.builder()
.connectionTimeoutMillis(3000)
.readTimeoutMillis(60000)
.build();
Cuando tenga una configuración de credenciales y la configuración de cliente opcional, puede empezar a crear instancias de servicio.
Para obtener un ejemplo de código que muestre cómo configurar y utilizar la y leer los timeouts en la configuración del cliente, consulte el ejemplo de timeout de configuración de cliente en GitHub.
Configuración de opciones personalizadas
En el archivo de configuración, puede insertar pares de clave-valor personalizados que defina y, a continuación, hacer referencia a ellos según sea necesario. Por ejemplo, puede especificar un ID de compartimento de uso frecuente en el archivo de configuración:
[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>
A continuación, puede recuperar el valor:
ConfigFile config
= ConfigFileReader.parse("~/.oci/config");
String compartmentId = config.get("custom_compartment_id");
Uso del SDK para Java
Existen dos formas de utilizar el SDK de Oracle Cloud Infrastructure para Java en su proyecto.
-
Importe
oci-java-sdk-bom
, seguido de la biblioteca de cliente HTTP y las dependencias del proyecto.La biblioteca de cliente HTTP se puede configurar y no se selecciona ninguna biblioteca por defecto. Actualmente, el SDK de OCI para Java permite elegir entre las siguientes bibliotecas de cliente HTTP:
- Jakarta EE 8/Jersey 2:
oci-common-httpclient-jersey
- Jakarta EE 9/Jersey 3:
oci-common-httpclient-jersey3
Debe seleccionar explícitamente la biblioteca declarando una dependencia en
oci-java-sdk-common-httpclient-jersey
ooci-java-sdk-common-httpclient-jersey3
. Por ejemplo:<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:
Añada la dependencia sombreada
oci-java-sdk-shaded-full
al archivo pom. Puede utilizar la dependencia sombreada para incluir todas las clases de terceros y sus dependencias transitivas; para ello, cambie el nombre e inclúyalas en el proyecto. Contiene un Uber JAR, que es básicamente una combinación de varios JAR. Se cambia el nombre de todos los paquetes de dentro de Uber JAR. De esta forma, se evitarán los conflictos entre las dependencias del SDK de Oracle Cloud Infrastructure y las dependencias de terceros que usted pueda utilizar en el proyecto.Por ejemplo, las clases de
org.apache.commons
se reubican enshaded.com.oracle.oci.javasdk.org.apache.commons
.El contenido de Uber JAR es el siguiente:
shaded/com/oracle/oci/javasdk/org/apache/commons/codec/BinaryDecoder.class shaded/com/oracle/oci/javasdk/org/apache/commons/logging/LogFactory.class
Si utiliza Maven para gestionar las dependencias, puede encontrar la dependencia sombreada más reciente en el repositorio de Maven.
Añada la versión más reciente de
oci-java-sdk-shaded-full
a sus dependencias:<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>