Java
Conecta una aplicación de Java a TeselaDB con el driver oficial de MongoDB.
Conecta una aplicación de Java a TeselaDB con el driver oficial de MongoDB para Java. TeselaDB se presenta como un mongos, así que el driver funciona sin cambios.
Requisitos
- Java 11 o posterior y Maven o Gradle.
- La dirección de uno o más nodos, un usuario con
readWritesobre la base y el ficheropki/ca.pemdel clúster.
Instala el driver
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version><!-- la última versión del driver --></version>
</dependency>Guarda la cadena de conexión
Pon la cadena en una variable de entorno y no la escribas en el código:
export TESELADB_URI="mongodb://usuario:<contraseña>@node-01:27017,node-02:27017/shop?tls=true"Añade la CA al almacén de confianza
El driver de Java no lee tlsCAFile de la cadena. Mete la CA del clúster en un almacén de confianza con keytool y
pásale ese almacén a la JVM, junto con su contraseña, en las propiedades javax.net.ssl.trustStore y
javax.net.ssl.trustStorePassword al arrancar tu aplicación:
keytool -importcert -alias teseladb -file ca.pem -keystore teseladb.jks -storepass <clave>
java -Djavax.net.ssl.trustStore=teseladb.jks -Djavax.net.ssl.trustStorePassword=<clave> -jar app.jarEn la cadena de conexión de tu aplicación deja solo la opción tls=true, sin tlsCAFile.
Escribe y lee un documento
try (MongoClient client = MongoClients.create(System.getenv("TESELADB_URI"))) {
MongoCollection<Document> orders = client.getDatabase("shop").getCollection("orders");
orders.insertOne(new Document("total", 149.5));
System.out.println(orders.countDocuments());
}Comprobar
El programa escribe el número de documentos de orders, que crece en uno cada vez que lo ejecutas.
Problemas frecuentes
- La conexión se cierra antes de autenticar porque falta
tls=trueen la cadena. - El driver no confía en el certificado del nodo porque no tiene la CA de este clúster.