представить сгенерированный JAXB класс как веб-сервис WSDL - PullRequest
1 голос
/ 12 октября 2009

У меня есть куча очень простых функций. Каждая функция имеет один вход и один выход.

OutputType function func(InputType);

Типы ввода / вывода определены в схеме xsd и сгенерированы в классы java с помощью JAXB / XJC. Теперь я хочу представить эти функции как веб-сервис WSDL, работающий на Geronimo.

Я только что посмотрел на Axis / WSDL2Java / Java2WSDL; Я думал, что это довольно похоже на то, как создаются мои функции.

Полагаю, я могу использовать Java2WSDL для генерации WSDL из моих функций и типов ввода / вывода. а затем использовать некоторые инструменты для генерации привязки на стороне сервера / клиента,

Может ли кто-нибудь дать дополнительные предложения? особенно я определил мой ввод / вывод функций в схеме xsd.

Большое спасибо.

A Резюме:


Это то, что у меня сейчас ....

Многие реализованные функции с одним входом и одним выходом.

public OutputType functionXXX (InputType in) {....; обратный вывод; }

InputType и OutputType уже определены в схеме xsd (и превращены в классы java с помощью Jaxb / xjc).


То, что я хочу, это ....

Создание веб-служб для выполнения этих функций. Не трогать код реализованных функций. И с WSDL,

Ответы [ 2 ]

2 голосов
/ 12 октября 2009

Я нашел учебник, использующий CXF , чтобы сделать то, что вы ищете здесь .

В этом документе утверждается, что используется контрактный подход, но это не совсем так. При обсуждении сервисов на основе SOAP сначала контракт означает создание сначала дескрипторов (WSDL, XSD). Затем вы генерируете любые артефакты кода из этих дескрипторов. Вы можете увидеть комментарии в оригинальном сообщении в блоге для дебатов о выборе слов оригинальным автором.

При этом подход по контракту имеет много преимуществ в зависимости от того, чего вы пытаетесь достичь. См. Учебник Spring Web Services для получения дополнительной информации о нем.

1 голос
/ 13 октября 2009

Если у вас есть существующая схема с существующими привязками JAXB2 для нее, то, по моему опыту, Spring WebServices - безусловно, самый простой способ представить ее как веб-службу SOAP. Его философия - «сначала контракт», и это именно то, что у вас есть. Вам не нужно создавать никаких дополнительных привязок, просто подключите конечные точки в виде Spring MVC, подключите маршаллер, и все готово. Он будет анализировать вашу схему в поисках вещей, похожих на операции, и автоматически выставлять их как операции WSDL (вы можете сказать, как это сделать, если автоматическое обнаружение по умолчанию не совсем работает).

...