Зарегистрировать веб-сервис JAX-WS программно - PullRequest
0 голосов
/ 15 декабря 2010

У меня следующая среда:

  • Tomcat 5.5.30
  • Java 6
  • JAX-WS RI 2.1

Мое основное веб-приложение состоит из нескольких небольших Java-проектов, например:

  • MainApplication (веб-проект): на нем нет кода, за исключением некоторых файлов конфигурации.
    • ClientModule (проект Java): имеет клиентские веб-сервисы (добавление, изменение и удаление клиентов)
    • BillingModule (проект Java): имеет веб-сервисы, связанные с биллингом (процедуры обработки биллинга)
    • ParameterModule (проект Java): имеет веб-сервисы, связанные с параметрами приложения (изменить настройки приложения)
    • и несколько других модулей

В настоящее время веб-сервисы из всех модулей добавляются в "sun-jaxws.xml" в MainApplication и автоматически регистрируются сервлетом JAX-WS, установленным в "web.xml". Но идея приложения состоит в том, чтобы позволить нам распространять приложение без некоторых модулей, если требуется, используя минимальные изменения в файлах конфигурации, чтобы избежать ошибок.

Моя идея состояла в том, чтобы создать службу META-INF и при инициализации приложения найти эти службы в каждом модуле, а затем подготовить собственный файл "sun-jax.xml" в каждом проекте Java и зарегистрировать веб-службы вручную.

Помимо того, что мы можем распространять только нужные модули, это упростит разработку, поскольку я могу развернуть только те модули, над которыми работаю, при развертывании MainApplication.

Итак, как мне зарегистрировать эти веб-сервисы вручную (или скорее программно)?

Сержио

1 Ответ

1 голос
/ 16 декабря 2010

Мне удалось это сделать, динамически создавая "sun-jaxws.xml" в моем классе, который реализует интерфейс javax.Servlet.ServletContextListener.

...