Je dois détecter les erreurs lors de l'authentification (comme les mauvais paramètres). Je n'y trouve rien. J'ai isolé la procédure avec des threads. Mais avec cette mauvaise façon, l'utilisateur ne peut pas comprendre ce qui se passe malComment gérer l'authentification à la base de données Mongo à partir de l'application Hibernate
Ci-dessous, mon code:
public static boolean access(String db, String ip, String usr, String pwd){
Map<String, String> persistenceMap = new HashMap<>();
persistenceMap.put("hibernate.ogm.datastore.database", db);
persistenceMap.put("hibernate.ogm.datastore.host", ip);
persistenceMap.put("hibernate.ogm.datastore.username", usr);
persistenceMap.put("hibernate.ogm.datastore.password", pwd);
Thread mainThread = Thread.currentThread();
Thread logThread = new Thread(() -> {
Connection.EMF = Persistence.createEntityManagerFactory("ogm-jpa-mongo", persistenceMap);
Connection.EM = Connection.EMF.createEntityManager();
Connection.isOpen = true;
});
Thread timeOut = new Thread(() -> {
try{ Thread.sleep(5000); }
catch(InterruptedException ex){ }
mainThread.interrupt();
});
logThread.start();
timeOut.start();
try{ logThread.join(); }
catch(InterruptedException ex){ return false; }
Connection.TM = com.arjuna.ats.jta.TransactionManager.transactionManager();
return Connection.isOpen;
}
C'est vrai, mais je ne peux pas l'attraper avec la construction try-catch classique. –
Vous n'avez pas de bloc try-catch dans votre exemple qui contient la création d'usine – Davide
Je ne l'ai pas inséré car il est inutile. L'exception est levée et gérée sans que je puisse faire quoi que ce soit –