Apache CXF с JAX-WS — различия WSDL с WSDL, созданным Axis2
У нас есть устаревшее приложение, использующее подход Java-first для веб-сервисов SOAP. До сих пор мы использовали axis2, но решили перейти на Apache CXF с JAX-WS. Мы переписали код и внесли необходимые изменения в Spring XML для генерации WSDL. Но мы столкнулись с одной серьезной проблемой в сгенерированном WSDL, которая мало чем отличается от проблемы Axis2, что, в свою очередь, приводит к разрыву контрактов с клиентами. Например, у нас есть API ниже, представленный в интерфейсе:
public OTPB2BResponse validateOTP(@WebParam(name = "otpB2BRequest") OTPB2BRequest otpB2BRequest);
В сгенерированном WSDL это выглядит так:
Ось2:
CXF с JAX-WS:
Для входного сообщения ось2 отображается как имя операции. Запрос с действием в качестве имени операции , где, как и в CXF, отображается только имя операции без какого-либо действия.
Но я хочу сгенерировать WSDL так же, как Axis 2. Я понятия не имею, что пошло не так, и пробовал различные варианты@WebParam
аннотация, но ни один из них не работает. Я даже пробовал с@RequestWrapper
аннотация, но не повезло.
У меня есть десятки веб-сервисов, которые создаются таким образом, что приводит к разрыву контрактов с клиентами. Есть ли способ сгенерировать WSDL так же, как Axis2?