Получить список развернутых сервисов Axis из другого сервиса Axis - PullRequest
1 голос
/ 22 августа 2011

У меня вопрос о том, как получить список развернутых сервисов 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 (). Но метод, казалось, создавал новый момент Оси 2 каждый раз, когда он вызывается. И поскольку я использовал его в конструкторе веб-службы, это вызвало бесконечный цикл. (создать экземпляр Axis -> создать экземпляр службы -> создать экземпляр Axis -> создать экземпляр службы -> ...) Итак, я хотел бы знать, есть ли способ программно получить список развернутых служб из другого развернутого сервиса? (Точно так же, как http://localhost:8080/axis2/services/listServices). Любая помощь с благодарностью.

Спасибо.

1 Ответ

1 голос
/ 23 августа 2011

Вам нужно получить объект AxisConfiguration среды. Помимо прочего, он предоставляет функцию с именем getServices(), которая возвращает карту установленных служб.

Если ваша служба реализует цикл ServiceLifecycle, функция ServiceLifecycle.startup() передается объекту AxisConfiguration во время запуска службы. С другой стороны, если ваш класс обслуживания реализует Lifecycle, тогда функции Lifecycle.init() передается объект ServiceContext. Вы должны иметь возможность позвонить ServiceContext.getConfigurationContext().getAxisConfiguration(), чтобы получить оттуда AxisConfiguration.

...