Добавить объект заголовка SOAP с использованием чистого JAX-WS

Я пытаюсь реализовать простой клиент веб-сервиса для PayPal Express Checkout APIс использованием JAX WS.PayPal Express Checkout APIпредоставляет файл WSDL, из которого я смог сгенерировать классы Java, используя CXF wsdl2java.

Из соображений аутентификации требует добавления заголовка SOAPк каждому запросу.Этот заголовок довольно прост и должен выглядеть так: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_ECSOAPAPIBasics#id09C3I0CF0O6

Создано из классов WSDL, включая ebay. класс apis.eblbasecomponents.CustomSecurityHeaderType, который представляет заголовок, который мне нужно добавить к каждому запросу.

Итак, вопрос: как добавить созданный вручную экземпляр класса CustomSecurityHeaderTypeв заголовок SOAP-запроса с учетом следующих условий:

  1. Мне не очень хочется использовать классы из Пакет com.sun.*, как указано в ответе здесь: JAX-WS — добавление заголовков SOAP(в основном из-за возможных проблем с переносимостью между разными JDK)
  2. Я не хочу маршалировать вручную этот объект в вложенныеэкземпляры javax.xml.soap.SOAPElement, как указано в ответе здесь: Как добавить заголовок SOAP с помощью Java JAX-WS

19
задан Community 23 May 2017 в 12:17
поделиться