假设,我在Payara / Glassfish(或与此相关的任何其他WebContainer)上托管JavaEE WebApp。
如果VirtualServer-Config默认指向应用程序,我将以地址https://a.b/appname/myservleturlpattern
或https://a.b/myservleturlpattern
到达Servlet。
通常,我可以在任何HttpServlet(ServletContext)中轻松获取该地址。
但是现在,当我在非servlet类中运行后台任务(@Schedule)时,如何获得该地址?
我想要的:从任何类(尤其是非Servlet类)获取应用的基本地址https://a.b/appname/
或作为https://a.b/
。 (因为我不在servlet中,所以无法获得myservleturlpattern
,因此无法获得。)
到目前为止,我唯一的想法是监听我的所有Servlet(无论如何都扩展同一个自定义HttpServlet),并且在第一次调用时设置了一个静态变量,但是那真的很不干净并且很容易被破解。
任何更好的主意?