在项目部署后获取 Web 应用程序上下文信息而无需访问 Web 端点
Getting web app context information after project deployment without hitting web endpoint
我有一个供内部使用的包,当添加到项目中时,需要向我们的 QA 应用程序发送一个通知,告知它处于活动状态,以及它在哪个端点可用。为此,我需要获取项目的上下文根。
问题
我首先尝试的是:
@Path("/myEndpoint")
public class MyAPI {
@Context
ServletContext context
@Get
public MyObject getMyObject() {
...
context.getContextPath(); // store path in MyObject
return myObjectInstance;
}
问题是有人需要先点击端点才能获取路径信息。我想要在部署项目时 运行 的东西。我的下一次尝试是将 @Singleton
与 @PostConstruct
一起使用,但我认为让我的 API class 运行 宁这样的代码不是最佳实践(并且 ServletContext 为 null,因此即使我选择将代码保留在其中也无法正常工作...)
我试过一两件事,但无济于事。该部门的一个建议是制作一个 Maven 插件,该插件可以使用此类信息对 QA 服务器执行 ping 操作,但为了简单起见,我希望找到一个 Java 解决方案。是否有另一种方法可以访问上下文根并在项目部署后自动触发一个方法?
我正在使用 Java8 和 Maven,我们的应用程序是使用 Glassfish 部署的。
好吧,基于这里没有回应,经过内部讨论,我们将编写一个 maven 插件来处理我的服务需要的上下文和其他信息。
我有一个供内部使用的包,当添加到项目中时,需要向我们的 QA 应用程序发送一个通知,告知它处于活动状态,以及它在哪个端点可用。为此,我需要获取项目的上下文根。
问题 我首先尝试的是:
@Path("/myEndpoint")
public class MyAPI {
@Context
ServletContext context
@Get
public MyObject getMyObject() {
...
context.getContextPath(); // store path in MyObject
return myObjectInstance;
}
问题是有人需要先点击端点才能获取路径信息。我想要在部署项目时 运行 的东西。我的下一次尝试是将 @Singleton
与 @PostConstruct
一起使用,但我认为让我的 API class 运行 宁这样的代码不是最佳实践(并且 ServletContext 为 null,因此即使我选择将代码保留在其中也无法正常工作...)
我试过一两件事,但无济于事。该部门的一个建议是制作一个 Maven 插件,该插件可以使用此类信息对 QA 服务器执行 ping 操作,但为了简单起见,我希望找到一个 Java 解决方案。是否有另一种方法可以访问上下文根并在项目部署后自动触发一个方法?
我正在使用 Java8 和 Maven,我们的应用程序是使用 Glassfish 部署的。
好吧,基于这里没有回应,经过内部讨论,我们将编写一个 maven 插件来处理我的服务需要的上下文和其他信息。