es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Interceptando llamadas salientes de la API de una aplicación web Java implementada.

Mi cliente tiene una aplicación web construida con Java 7 que se despliega en un contenedor Tomcat 7. Esta aplicación utiliza una API de SMS con una configuración codificada. ¿Existe alguna forma de interceptar esta llamada a la API con el fin de anular la configuración actual y enviarla a otra API de SMS?

He pensado en desplegar otro archivo de guerra en el mismo contenedor Tomcat para actuar como un interceptor, ya que no tengo acceso al código de la aplicación heredada. ¿Existe una forma mejor o más limpia de lograr esto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de interceptar la llamada a la API sin acceder al código de la aplicación heredada. Como mencionaste, desplegar otro archivo WAR en el mismo contenedor de Tomcat puede actuar como un interceptor. Una manera de lograr esto es utilizando una válvula de Tomcat, la cual es un componente que puede interceptar y operar una solicitud antes o después de que sea pasada al servlet.

    Para hacer esto, crea una válvula personalizada que intercepte la llamada a la API de SMS y anule la configuración antes de enviarla a la nueva API. La válvula puede ser implementada utilizando Java, y se deberá añadir al archivo server.xml o context.xml de Tomcat.

    Otra forma es utilizar un servidor proxy o un balanceador de carga. Un servidor proxy se sitúa entre el cliente y el servidor, y puede interceptar y modificar las solicitudes antes de enviarlas al servidor. Al configurar el servidor proxy para interceptar la llamada a la API de SMS y enviarla a la nueva API, se puede anular la configuración codificada. Este enfoque es especialmente útil cuando se trata con múltiples servidores y se necesita escalar, ya que el servidor proxy puede distribuir la carga y ofrecer alta disponibilidad.

    En resumen, el uso de una válvula o un servidor proxy para interceptar la llamada a la API de SMS puede ser una forma más limpia y manejable de lograr el resultado deseado sin modificar el código heredado.

Comments are closed.