Общаться между сервисами в axis2? - PullRequest
1 голос
/ 21 января 2011

У нас есть реализация веб-сервиса, которая поддерживает немного внутреннего состояния.Теперь мы хотим добавить отдельный интерфейс веб-сервиса, который обращается к тому же внутреннему состоянию первого веб-сервиса.По сути, это были бы два интерфейса в одной базовой программе.Мы можем упаковать две веб-службы в один и тот же файл AAR, как две службы в одной и той же группе служб.

В этих настройках будут ли эти две службы совместно использовать загрузчик классов (в этом случае они могут совместно использовать созданные экземпляры классов)?Или есть какой-то другой механизм axis2 для двух реализаций, чтобы общаться друг с другом?

1 Ответ

1 голос
/ 10 марта 2011

Оказывается, это "просто работает". Если две службы являются частью одной и той же группы, они будут использовать один и тот же загрузчик классов. Это означает, что у них будет доступ к одному и тому же набору статических переменных и синглетонов.

Axis2 также позволяет добавлять параметры к определенным объектам конфигурации. Каждый параметр состоит из пары имя-значение, где значением может быть любой объект. AxisConfiguration для всей среды можно использовать для хранения параметров, видимых для любой другой службы, работающей в среде. В вашей функции ServiceLifecycle.startUp() вызовите getAxisConfiguration() для аргумента ConfigurationContext, чтобы получить AxisConfiguration. Затем используйте addParameter() и getParameter() для доступа к параметрам.

...