Approche fonctionnelle

Etant donné qu'Content Integration Framework n'initie et ne gère pas les connexions sortantes en cas de services fonctionnels, il ne peut pas suivre le bon déroulement de bout en bout.

Par conséquent, il fournit certaines exceptions standard, que les implémentations de service peuvent déclencher pour transmettre les conditions d'échec pertinentes. Ces exceptions sont liées à la communication avec le système cible et sont présentes au sein du package com.hcl.unica.system.integration.exception.

  • SystemNotFoundException

    Cette exception doit être utilisée lorsqu'il n'est pas possible de localiser le système cible ou le référentiel de contenu. De même, il est possible d'utiliser également java.net.UnknownHostException. Cette exception est transmise en tant que réponse HTTP 404 au client.

  • ServiceNotFoundException

    Cette exception doit être utilisée lorsque le point de terminaison distant renvoie 404 ou si le service cible n'existe plus. L'absence du système cible et l'absence du service requis sont considérées comme des choses différentes. Par conséquent, le ServiceNotFoundException véhicule la présence du système cible et l'absence du service requis, ou de la fonctionnalité, sur le système cible. Par exemple, en cas de contenu extrait de la base de données, l'absence de la table requise (ou l'absence de droit d'accès) peut être transmise à l'aide de cette exception. Cette exception est transmise en tant que réponse HTTP 404 au client.

  • UnreachableSystemException

    Cette exception doit être utilisée pour transmettre des systèmes cible inaccessibles ou inaccessibles, tels que le délai d'expiration de la connexion. De même, il est possible d'utiliser également java.net.ConnectException. Cette exception est transmise en tant que réponse HTTP 503 au client.

  • SluggishSystemException

    Lorsque la réponse du système cible n'est pas reçue au cours du délai prévu, cette exception doit être utilisée pour communiquer la lenteur du système cible. De même, il est possible d'utiliser également java.net.SocketTimeoutException. Cette exception est transmise en tant que réponse HTTP 504 au client.

  • InternalSystemError

    Cette exception doit être utilisée si le plug-in reçoit une erreur temporaire ou inattendue du système cible pour communiquer les problèmes qu'il contient. Cette exception est transmise en tant que réponse HTTP 502 au client.

Toutes les autres exceptions sont transmises en tant que réponse HTTP 502 au client. Dans tous les cas, le message de l'exception n'est jamais renvoyé au client. Chaque code de réponse HTTP contient un message fixe, générique et localisé.

Content Integration Framework encapsule les exceptions reçues des implémentations de service dans com.hcl.unica.system.integration.exception.ServiceExecutionException ou dans son sous-type. Les exceptions reçues à partir de services REST ou de services basés sur HTTP sont encapsulées dans com.hcl.unica.system.integration.exception.HttpServiceExecutionException, tandis que celles reçues des services fonctionnels sont encapsulées dans com.hcl.unica.system.integration.exception.ServiceExecutionException.

Comme expliqué dans Invocation de service, HttpServiceExecutionException fournit une méthode pour obtenir un objet Optional<HttpResponse>. Si l’exécution du service échoue avant de lancer un appel HTTP, cet objet facultatif ne contient aucune HttpResponse.