从另一个Axis服务获取已部署的Axis服务的列表

时间:2011-08-22 19:16:55

标签: java service axis2 web

我有一个关于如何在另一个Axis服务中获取已部署的Axis服务列表的问题。这是场景。我使用Tomcat 7.0.14和Axis 2-1.5.5作为部署环境。假设目前在Tomcat上部署了5个Axis服务,即A,B,C,D,E。我想在服务E中编写一些代码,以便它可以获得包含所有已部署服务的服务列表,即A ,B,C,D,E。

我尝试使用ConfigurationContextFactory.createConfigurationContextFromFileSystem()方法。但是每次调用时,该方法似乎都会创建一个新的Axis 2 isntance。因为我在Web服务的构造函数中使用它,所以它导致了无限循环。 (创建Axis实例 - >创建服务实例 - >创建Axis实例 - >创建服务实例 - > ...)所以我想知道有没有办法以编程方式从另一个部署的部署服务列表服务? (就像http://localhost:8080/axis2/services/listServices那样)。非常感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:1)

您需要获取环境的AxisConfiguration对象。它提供了一个名为getServices()的函数,它返回已安装服务的映射。

如果您的服务实现ServiceLifecycle,则在服务启动期间将ServiceLifecycle.startup()函数传递给AxisConfiguration对象。或者,如果您的服务类实现Lifecycle,则Lifecycle.init()函数将传递ServiceContext对象。您应该可以调用ServiceContext.getConfigurationContext().getAxisConfiguration()从那里获取AxisConfiguration。