Абстрактные типы в определении веб-сервиса (wsdl) - PullRequest
0 голосов
/ 05 августа 2009

Я использую фреймворк xFire для публикации веб-сервиса в своем веб-приложении. В этом сервисе я использую абстрактные типы возврата в таких операциях, как List . Конкретные возвращаемые значения операций: ArrayList .

Конкретный класс SpecialType расширяет абстрактный класс GlobaleType. В сгенерированном документе WSDL указан только GlobaleType с дополнительным определением abstract = "true". Сгенерированный клиент (с помощью оси apache) создает только абстрактный класс GlobaleType, который нельзя использовать для создания экземпляров.

Есть ли у кого-нибудь идея, почему контракт wsdl неправильный?

1 Ответ

1 голос
/ 06 августа 2009

Если я правильно вас понимаю, ваша подпись веб-метода:

public List<GlobaleType> doSomething(args)

Тогда ваш wsdl генерируется правильно. Пока ось apache знает, что SpecialType расширяет GlobalType, окончательный тип может быть отправлен через веб-сервис, и полиморфизм будет передан от веб-службы клиенту.

Используете ли вы веб-сервис JAX-WS? Затем убедитесь, что вы используете аннотацию @XmlSeeAlso для базового типа.

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