Servlets 在项目部署后获取web应用程序上下文信息而不触及web端点
我有一个内部使用的包,当添加到项目中时,需要向我们的QA应用程序发送一个通知,告知它是活动的,并且在哪个端点可用。为此,我需要获取项目的上下文根 问题 我首先尝试的是:Servlets 在项目部署后获取web应用程序上下文信息而不触及web端点,servlets,initialization,jax-rs,contextpath,Servlets,Initialization,Jax Rs,Contextpath,我有一个内部使用的包,当添加到项目中时,需要向我们的QA应用程序发送一个通知,告知它是活动的,并且在哪个端点可用。为此,我需要获取项目的上下文根 问题 我首先尝试的是: @Path("/myEndpoint") public class MyAPI { @Context ServletContext context @Get public MyObject getMyObject() { ... context.getContextPath(); // store path
@Path("/myEndpoint")
public class MyAPI {
@Context
ServletContext context
@Get
public MyObject getMyObject() {
...
context.getContextPath(); // store path in MyObject
return myObjectInstance;
}
问题是,需要有人首先点击端点才能获得路径信息。我想要在部署项目时运行的东西。我的下一次尝试是将@Singleton
与@PostConstruct
一起使用,但我认为让我的API类运行那种代码不是最佳做法(而且ServletContext是空的,所以即使我选择将代码保留在…,它也无法工作)
我试过一两件别的东西,但都没用。该部门的一个建议是制作一个Maven插件,用这种信息ping QA服务器,但为了简单起见,我希望找到一个Java解决方案。是否有其他方法可以访问上下文根并在项目部署后自动激发方法
我在Maven中使用Java8,我们的应用程序是使用Glassfish部署的。好吧,基于这里没有响应,在内部讨论之后,我们将编写一个Maven插件来处理我的服务所需的上下文和其他信息