【发布时间】:2011-10-03 21:56:10
【问题描述】:
我们有一个在 websphere 应用服务器中运行的 Axis2 应用程序。该应用程序被打包为 WAR 文件。我们需要在同一个 websphere 副本中运行同一个 WAR 的两个副本,并让应用程序的每个副本从文件系统加载不同的属性文件。我正在寻找可以在部署应用程序时从 websphere 管理控制台设置的内容,这些内容对应用程序可见,并可用于更改应用程序搜索其属性的方式。
现在属性文件存储在 WAR 中,因此我们为每个环境构建不同版本的 WAR。相反,我们希望使用一个单一的、非特定于环境的 WAR 文件和一个存储在文件系统中的外部属性文件。我们有这个工作。但是,我们在同一个 websphere 副本中托管了两个开发环境。所以我们需要在同一个 websphere 服务器中部署同一个 WAR 的两个副本,并让每个实例加载一个不同的属性文件。
我们尝试的一件事是检查上下文根。当部署应用程序的两个副本时,它们每个都必须具有不同的上下文根(用于访问应用程序的 URL 的第一部分),并且 Axis2 ConfigurationContext 包含一个用于读取上下文根的函数。不幸的是,当应用程序在 WAS 中运行时,它获得了 Axis2 的上下文根概念——它始终是“axis2”——而不是 WAS 使用的真正的上下文根。
编辑:为了澄清,我们希望在应用程序启动期间加载属性文件(对于那些熟悉 Axis2 的人来说,在 ServiceLifecycle.startup() 期间)。此时没有要处理的实际 Web 服务请求,因此我们没有要检查的消息上下文。
【问题讨论】:
标签: web-services websphere axis2