Estoy escribiendo una aplicación web Java usando Spring MVC. Tengo un proceso en segundo plano que pasa por la base de datos y encuentra notificaciones que deben enviarse por correo electrónico a mis usuarios. Estos mensajes de correo electrónico deben incluir hipervínculos a la aplicación. Esto parece un patrón bastante común para una aplicación web, pero estoy teniendo problemas.Encontrar la URL de su aplicación con solo un ServletContext
¿Cómo obtengo la URL completa de mi aplicación, con el nombre del servidor y la ruta de contexto? No tengo acceso a ninguno de los métodos en HttpServletRequest porque estoy ejecutando esto como un proceso en segundo plano, no en respuesta a una solicitud web. Lo mejor que puedo hacer es tener acceso a ServletContext.
Actualmente estoy colocando la URL base en un archivo de configuración y leyéndola al inicio, pero esta aplicación se licenciará e implementará en los servidores de aplicaciones de los clientes, y de ser posible me gustaría que no tengan que configurar esto de forma manual.
¿Por qué no puedes usar una URL relativa? – Eddie
¿En relación a qué? Esto se envía en un correo electrónico. –
Ah, si se está enviando en un correo electrónico, entonces, por supuesto, necesita un camino completo.Pensé que tal vez esto era parte de Servlet, algo que comenzó una tarea en segundo plano. – Eddie