【发布时间】:2010-10-15 02:43:51
【问题描述】:
我正在使用 Spring MVC 编写一个 Java Web 应用程序。我有一个后台进程,它遍历数据库并找到必须通过电子邮件发送给我的用户的通知。这些电子邮件消息需要包含指向应用程序的超链接。对于网络应用来说,这似乎是一种相当常见的模式,但我遇到了麻烦。
如何使用服务器名称和上下文路径派生我的应用程序的完全限定 URL?我无权访问 HttpServletRequest 中的任何方法,因为我将其作为后台进程运行,而不是响应 Web 请求。我能做的最好的就是访问 ServletContext。
目前我将基本 URL 放入配置文件并在启动时读取它,但此应用程序将获得许可并部署到客户的应用程序服务器,如果可能的话,我希望他们不必配置这个是手动的。
【问题讨论】:
-
为什么不能使用相对 URL?
-
相对于什么?这是通过电子邮件发送的。
-
啊,如果它是通过电子邮件发送出去的,那么你当然需要一个完整的路径。我想这可能是 Servlet 的一部分——启动后台任务的东西。
-
这也让我发疯了,尝试使事情变得相对很好,但是在某些情况下您必须能够发布完整路径。我目前正在与一个愚蠢的系统作斗争,该系统需要一条完整的路径来配置其所有事物的 servlet。在我看来这很糟糕,因为它阻止了创建可重定位的 WAR。我希望这个问题的一个好的答案能让我从外面修补它。
标签: java jakarta-ee spring-mvc