Лучший способ использовать RPC/encoded webservice?
Мне нужно использовать веб-службу WSDL старой школы RPC/encoded для моего бэкэнда. Сначала я пытался использовать Apache CXF и JAX-WS для этого, но инструмент JAX-WS wsimport
не питается rpc/enoded WSDL.
[ERROR] rpc/encoded wsdls не поддерживаются в JAXWS 2.0.
Я также сомневаюсь в использовании JAX-RPC для этой работы, потому что она устарела. Axis 1.4 - инструмент 5 лет.
В настоящее время я вижу эти три варианта:
- использовать JAX-WS
javax.xml.ws.Dispatch
для отправки и получения SOAP и как-то его анализировать, один пример
- используйте JAX-RPC и получите плохую карму для использования устаревшей технологии,
- сделайте все это вручную и ненавидя себя позже.
Ни один из них не звучит слишком хорошо, поэтому я был бы признателен, если бы вы могли дать хорошие результаты, подумали, что делать и как его решить.
Ответы
Ответ 1
UPDATE
Мое дело было решено с помощью редактирования вручную WSDL от закодированного до literal (в основном под операциями ввода и вывода use="literal"
была единственная замена), а затем я мог генерировать заглушки с Apache CXF. Это можно сделать, потому что конечная точка не анализировала точно RPC/кодировку и RPC/закодированный spec XML не мог быть проверен против WSDL).
Хотя Axis 1.4 может работать для вас, использование Apache CXF с этим небольшим взломом WSDL может быть лучшим способом.
[Старый ответ]
Для справки - на этот раз я решил использовать JAX-RPC и Axis 1.4. Я создавал клиентский код и, надеюсь, может заменить его реализацией JAX-WS при обновлении службы.