axis2: использовать наследование для сгенерированных кодом объектов запроса / ответа - PullRequest
0 голосов
/ 26 марта 2012

вопрос довольно прост, поэтому я надеюсь, что мне посчастливится быть достаточно ясным, чтобы избежать создания примера кода для него.Мы используем Axis2 (точнее 1.5.1), который предназначен для создания клиентского кода Java и заглушек сервера через wsdl2java, используя наши файлы WSDL / XSD, созданные вручную.Сервис генерируется в режиме документа, и мы используем стек сериализации ADB-компонентов .

Наш новый веб-сервис имеет некоторые общие атрибуты во всех методах, которые мы собираемся создать.Скажем, каждый из запросов должен быть помечен некоторыми accessToken, otherPartyID и другими подобными свойствами.

Мне удалось применить наследование в схемах, поэтому типы запросов / ответов действительно расширяют общий complexType, и мне не нужно повторяться при создании схем / WSDL для веб-службы.Но когда я пытаюсь закодировать реализацию, я (к своему крайнему разочарованию) вижу, что все сгенерированные кодом объекты Request / Response наследуют java.lang.Object, и нет общего суперкласса с общими свойствами.

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

В настоящее время я подозреваю, что AXIS не поддерживает наследование между типами запросов / ответов методов, а поддерживает его для типов параметров.Пожалуйста, поделитесь своим опытом по этому вопросу.

Если у вас есть какой-либо определенный / точный ответ со ссылкой на документацию / источники AXIS, это будет просто замечательно.

Заранее спасибо, Антон

1 Ответ

1 голос
/ 26 марта 2012

Это не прямой ответ на ваш вопрос, но то, что вы делаете, неверно.
Наследование - это объектно-ориентированный термин, и вам не следует развертывать веб-службы, которые фиксируют специфические для ОО механизмы. Это противоречит концепции Сервис-ориентированного подхода.

Так что, если ваше подозрение окажется верным, это проблема не Оси, а вашего дизайна.
В любом случае, я бы предложил обратиться в службу поддержки Axis2 напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...