Добавьте обработчик мыла Axis 2 с сообщением мыла
Требования
Нужно вызвать веб-сервис, который имеет wsdl, который не открывается через браузер.
У меня есть документ wsdl, в котором указана фиктивная конечная точка.
После создания классов-заглушек и т. Д. Конечная точка должна быть изменена во время выполнения.Должен быть вызван метод третьей стороны, который добавил бы заголовок в сообщение SOAP. Этот метод будет принимать только сообщение SOAP. Этот метод должен вызываться из SoapHandler, который мы должны добавить в поток.
Я попробовал со всем следующим
Ось 2
Служба хорошо работает с Axis 2, за исключением проблемы, состоящей в том, что я могу получить доступ только к AxisMesage в обработчиках, а не к сообщению SOAP, и, следовательно, я не могу вызвать сбой моего стороннего метода.
Axis 1.4 Служба работает хорошо, и я могу получить доступ к сообщению SOAP, которое я могу использовать для вызова стороннего метода
Apache CXF, JAX-WS и т. Д.
Поскольку wsdl недоступен, если я инициализирую класс обслуживания с новой конечной точкой wsdl или если я устанавливаю конечную точку через bindingProvider, возникает исключение, из-за которого я не могу вызвать службу.
Вопрос
Поскольку Axis 1.4 старая, существует общее мнение, чтобы держаться подальше от нее.
Axis 2 хорош, за исключением проблемы AxisMessage. Есть ли способ получить доступ к SoapMessage в обработчиках, которые я добавляю в Axis. Обработчики, которые я могу добавить, являются только обработчиками Axis 2
В CXF и JAX-WS я могу добавить универсальные обработчики, в которых у меня есть SoapMessage, но они терпят неудачу, когда класс обслуживания инициализируется или устанавливается с помощью BindingProvider
Любое предложение
Спасибо
Чарли
1 ответ
В Axis2 AxisMessage не представляет текущее сообщение. Вместо этого он представляет wsdl:message
элемент, т. е. является частью описания услуги. Чтобы получить сообщение SOAP, получите SOAPEnvelope
от MessageContext
,