Я хочу создать службу SOAP с открытыми несколькими типами портов, где каждый тип порта имеет отдельный интерфейс. Я пытаюсь сделать это с помощью JAX-WS 2.0.
Пример:
interface A:
ObjectA get(String name);
interface B:
ObjectB get(String name);
Service:
port A
get
port B
get
Проблема, с которой я сталкиваюсь, заключается в том, что @WebService определен с использованием одного класса/интерфейса, поэтому единственный способ, которым я могу установить это, состоит из двух отдельных сервисов. Каждая служба реализована отдельным классом с аннотацией @WebService.
Я бы хотел разоблачить оба порта, используя одну и ту же службу, чтобы было ясно, что они оба являются частью одного и того же API. Возможно ли это?
В действительности, то, что мне нужно, имеет некоторую поддержку вложенного пространства имен в WSDL, поэтому я могу использовать те же методы в разных пространствах имен. У меня будут методы get/set/delete для разных видов данных рядом друг с другом, но я бы предпочел не размещать их в одном большом интерфейсе с getA/getB и т.д., Так как я хотел бы иметь возможность для добавления новых типов данных позже без принудительного восстановления всех клиентов из нового набора WSDL. Любые советы по достижению этого приветствуются, даже если это означает использование другого способа генерации WSDL из java-кода.