Отправка пользовательского заголовка в веб-сервис SOAP с Axis 2

Я должен отправить токены через заголовок. Это код, который я пытаюсь

            ServiceClient _serviceClient = new ServiceClient();
            SOAPHeaderBlock header = new SOAP11HeaderBlockImpl();

            header.addAttribute("Content-Type", "text/xml; charset=utf-8", null);
            header.addAttribute("LocationToken", "vdsadfafdasfsdas==", null);
            header.addAttribute("AccessToken", "zxfadfasfasdfasdfsadf", null);
            header.addAttribute("Content-Length", String.valueOf(input), null);
            header.addAttribute("SOAPAction","http://example.com/CalculateOrder",null);
            _serviceClient.addHeader(header);
            owesbservice._setServiceClient(_serviceClient);

Я получаю NullpoinException в ответе.

            CalculateOrderResponseDocument responseDoc = null;
            responseDoc = owesbservice.calculateOrder(calculateOrder8);

Как это исправить? Помимо этого мне нужно указать POST/GET

1 ответ

Решение

Вот фрагмент кода, который отправляет пользовательский заголовок.

            Map<String, String> property = new HashMap<>();
            property.put("LocationToken", "vbdffdssgsdf==");
            property.put("AccessToken", "fgfsdfsdfddfdfdf==");

            options.setProperty( org.apache.axis2.transport.http.HTTPConstants.HTTP_HEADERS , property);

До этого я отправлял другую информацию такого типа в заголовок клиента. Но если вы хотите отправить их, вы можете использовать методы API в качестве примера,

options.setProperty(org.apache.axis2.Constants.Configuration.CHARACTER_SET_ENCODING ,"UTF-8");
            options.setProperty(org.apache.axis2.transport.http.HTTPConstants.HEADER_CONTENT_TYPE, "text/xml");
Другие вопросы по тегам