我们有一个Web服务实现,它保持一些内部状态。现在我们要添加一个单独的Web服务接口,该接口访问第一个Web服务的相同内部状态。从本质上讲,它是同一底层程序的两个接口。我们可以将两个Web服务打包在同一个AAR文件中,作为同一服务组中的两个服务。
在此设置中,两个服务是否共享一个类加载器(在这种情况下,它们可以共享实例化的类)?或者是否有一些其他的axis2机制可以让两个实现相互通信?
答案 0 :(得分:1)
事实证明这“正常”。如果两个服务属于同一服务组,则它们将使用相同的类加载器。这意味着他们可以访问同一组静态变量和单例。
Axis2还允许您向某些配置对象添加参数。每个参数都包含一个名称 - 值对,其中值可以是任何对象。环境范围的AxisConfiguration可用于存储对环境中运行的任何其他服务可见的参数。在ServiceLifecycle.startUp()
函数中,在ConfigurationContext参数上调用getAxisConfiguration()
以检索AxisConfiguration。然后使用addParameter()
和getParameter()
访问参数。