Webservice-Client: общий подход с Spring WS, JAXB и только одним файлом WSDL? - PullRequest
5 голосов
/ 18 июля 2011

Я хотел бы использовать Spring WS для создания Webservice-Client с JAXB для маршалинга и демаршаллинга классов Java.

Но у меня есть только один файл WSDL.Когда я правильно понимаю, я могу генерировать классы Java с помощью JAXB (xjc.exe), который затем я могу использовать в Spring WS для извлечения данных Webservice и отправки ответа.

Но JAXB может толькогенерировать классы Java из файлов xsd-схемы.Должен ли я теперь вручную скопировать эти определения xsd из файла WSDL, чтобы сгенерировать эти классы через JAXB?(в моем случае файл WSDL содержит 4 определения XSD).

Или есть способ просто преобразовать весь WSDL в классы Java, которые я могу использовать в Spring WS (я знаю, что есть "wsimport",но это часть JAX-WS, и я думаю, что не могу использовать его в этом сценарии, верно?).

Так каков общий подход к Spring WS / JAXB / one WSDL-файлу?

Я действительно хотел бы начать со Spring WS и JAXB - большое спасибо за вашу помощь!

1 Ответ

3 голосов
/ 19 июля 2011

Я могу генерировать классы Java с помощью JAXB (xbj.exe)

xjc, вы имеете в виду.

Должен ли я теперь вручную скопировать эти xsd-определения из файла WSDL для генерации этих классов через JAXB?

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

Я знаю, что есть "wsimport", но это часть JAX-WS, и я думаю, что не могу использовать его в этом сценарии,да?

На самом деле, артефакты JAX-WS - это просто украшенная форма JAXB.wsimport произведет некоторые специфичные для JAX-WS вещи, а также стандартные артефакты JAXB, представляющие компоненты схемы.Вы должны иметь возможность использовать сгенерированные JAXB классы для Spring-WS и игнорировать специфичные для JAX-WS классы.

...