我有一个在服务器启动时启动的后端进程。完成此过程后,我会向用户发送电子邮件。我需要访问应用程序端口才能构建在同一实例上运行的Web报告的完整URL。有没有办法获取端口而无需访问请求对象?
答案 0 :(得分:1)
我需要访问应用程序端口才能构建在同一实例上运行的Web报告的完整URL。有没有办法在不访问请求对象的情况下获取端口?
为什么不将此属性作为配置文件中的属性存储到后端进程中?如果仅需要嵌入电子邮件中的端口(甚至是不会更改的网站URL片段),代码将变得更加简单。
此外,相关管理员有更好的事情要做,而不是定期更改端口号。
相关问题(但不完全相同)
它们都提供了原因,为什么servlet容器看到的路径不必与最终用户看到的路径相同。即使两者都相同,也无法在没有
的情况下访问此信息$JETTY_HOME/etc/jetty.xml
,其中包含Connectors
元素中的必要信息。ServletRequest
对象的引用,这可能不是此问题的有效答案。答案 1 :(得分:0)
如果您的应用程序中至少有一个http请求调用,则可以从中获取端口:
int portNumber = request.getServerPort();
也许您的启动脚本可以进行此类调用。