Dans cet article, nous aborderons une méthode efficace pour résoudre les problèmes liés aux WS en utilisant Karaf, en insistant sur l’importance d’arrêter correctement tous les WS, de supprimer les liens existants, de vider le cache et de reconfigurer certains éléments clés.

Arrêt et gestion du cache

La première étape consiste à arrêter tous les services web (WS) afin d’éviter toute interférence lors du processus de résolution du problème. Une fois cette opération effectuée, il est crucial d’arrêter le conteneur Karaf. Cette action garantit qu’aucun processus ne reste actif et susceptible de perturber les modifications à venir.

La prochaine étape consiste à vider le cache de Karaf. Cela peut être réalisé en naviguant vers le répertoire suivant et en supprimant son contenu : D:\Talend7.3.1\Server\container\data\cache. Cette action est essentielle pour s’assurer que Karaf démarre sans aucune donnée résiduelle qui pourrait influencer son comportement après redémarrage.

Configuration et déploiement

Après avoir vidé le cache, il est temps de passer à la configuration de Karaf. Commencez par ajouter le dépôt de fonctionnalités pax-jdbc en utilisant la commande suivante : feature:repo-add pax-jdbc 1.3.0. Ensuite, installez les fonctionnalités nécessaires avec : feature:install transaction jndi pax-jdbc-mssql pax-jdbc-pool-dbcp2 pax-jdbc-config. Ces commandes permettent d’ajouter et d’installer les modules requis pour une gestion optimale des connexions de base de données au sein de Karaf.

Sur le plan du Runtime, il est important d’activer une configuration spécifique dans le fichier D:\Talend7.3.1\Server\container\etc\org.ops4j.pax.url.mvn.cfg en modifiant la ligne suivante pour qu’elle soit à true : org.ops4j.pax.url.mvn.certificateCheck=true. Cette modification assure une vérification des certificats, contribuant ainsi à la sécurité de vos services web lors de l’interaction avec des sources de données externes.

Déploiement et redémarrage

Une fois ces configurations appliquées, il est temps de déployer vos services web (WS) et de redémarrer Karaf. Ce processus permet d’appliquer toutes les modifications et de s’assurer que vos services web fonctionnent correctement dans un environnement propre et correctement configuré.


Type de message d’erreur lors du deploy
Error resolving artifact talend.namespace.test.service:ws_test_01-feature:xml:features:0.1.0-SNAPSHOT: [Could not find artifact talend.namespace.test.service:ws_test_01-feature:xml:features:0.1.0-SNAPSHOT in defaultlocal (file:/C:/Users/user1/.m2/repository/), Could not transfer artifact talend.namespace.test.service:ws_test_01-feature:xml:features:0.1.0-SNAPSHOT from/to tesb.snapshot (https://user2:XXX@repository.dataorga.com:443/repository/snapshots/): java.security.cert.CertificateExpiredException: NotAfter: Sun Jan 16 00:59:59 CET 2022, Could not transfer artifact talend.namespace.test.service:ws_test_01-feature:xml:features:0.1.0-SNAPSHOT from/to talend.snapshot (https://user2:XXX@repository.dataorga.com:443/repository/snapshots/): java.security.cert.CertificateExpiredException: NotAfter: Sun Jan 16 00:59:59 CET 2022]

ou autre message possible
Operation failed: org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=ws_ws_test-feature; type=karaf.feature; version= »[1.14.0,1.14.0] »; filter:= »(&(osgi.identity=ws_ws_test-feature)(type=karaf.feature)(version>=1.14.0)(version<=1.14.0)) » — For more information see your log file

A vérifier / Contrôler

  • La configuration du Nexus dans la TAC : contrôle du port utilisation du port 443 (et non pas 4883)
  • La configuration des runtimes Talend :
    • org.ops4j.pax.url.mvn.cfg
      • utilisation du port 443 (et non pas 4883)
      • activation certificateCheck
  • Ajout d’un certificat sur le Nexus
  • Pour Panay seulement
    • Configuration du runtime Talend : org.apache.karaf.management.cfg
    • vider le cache Karaf : D:\Talend7.3.1\Server\container\data\cache (arret du service Karaf, vider le cache, relance du service Karaf)
      • D’ailleurs à vérifier si c’est normal j’ai perdu les WS installé, j’ai dû les réinstaller
    • Depuis Karaf en ligne de commande réinstallation des features suivant
      • feature:repo-add pax-jdbc 1.3.0
      • feature:install transaction jndi pax-jdbc-mssql pax-jdbc-pool-dbcp2 pax-jdbc-config

Détails org.ops4j.pax.url.mvn.cfg 

  • Runtime Serveur1 :
    • D:\TalendDataServices\Talend-Runtime-V8.0.1\etc\org.ops4j.pax.url.mvn.cfg 
org.ops4j.pax.url.mvn.certificateCheck=true 
 org.ops4j.pax.url.mvn.repositories= \     https://admin:XXX@repository.data.orga.com:443/repository/releases@id=tesb.release, \     https://admin:XXX@repository.data.orga.com:443/repository/snapshots@snapshots@id=tesb.snapshot, \     https://repo1.maven.org/maven2@id=central 

Détails org.ops4j.pax.url.mvn.cfg 

  • Runtime Serveur
    • D:\Talend7.3.1\Server\container\etc\org.apache.karaf.management.cfg
rmiServerHost = 10.6.10.21
rmiRegistryHost = 10.6.10.21

Détail org.ops4j.pax.url.mvn.localRepository & activation certificateCheck

Il semble que lorsque le features est déjà présent dans le dossier local du serveur où se trouve le runtime, il n’y pas de problème de certificat car il a déjà était importé auparavant.

Exemple de dossier lié à la conf : org.ops4j.pax.url.mvn.localRepository

=>C:\Windows\System32\config\systemprofile\.m2\repository