MTOM Basi c аутентификация в заголовке: не найдена длина содержимого в заголовке - PullRequest
0 голосов
/ 17 апреля 2020

Я только начал работать с SOAP веб-сервисами и наткнулся на MTOM.

У меня есть веб-сервис, для которого требуется Basi c Аутентификация, пароль,

Ниже реализация клиента:

 final Authenticator myAuth = new Authenticator() {
                    @Override
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(login,
                            password.toCharArray());
                }
            };
            Authenticator.setDefault(myAuth);
D04OGADMINP4WsReceiveDocument service1 = new D04OGADMINP4WsReceiveDocument();
P4ServiceResource p4ServiceResource = service1.getP4ServiceResourceSoap12()

BindingProvider bp = (BindingProvider) p4ServiceResource;
SOAPBinding soapBinding = (SOAPBinding) bp.getBinding();
soapBinding.setMTOMEnabled(true);

DeclarerDomainDocumentResponse response = p4ServiceResource.declarerDomainDocument(request);

Две вещи, которые я не могу понять:

  • Когда я тестирую из своего класса java main, он работает отлично. ответ сервера в порядке.

  • Когда я тестирую с моего сервера Jboss, он не работает, и у меня 401 доступ запрещен. Я попытался поместить авторизацию в заголовок так:

    theHeaders = new HashMap> ();
    Base64 en c = new Base64 (); Строка userpassword = esbLogin + ":" + esbPassword; String encodedAuthorization = en c .encodeAsString (userpassword.getBytes ()); theHeaders.put («Авторизация», Collections.singletonList («Basi c» + encodedAuthorization)); bp.getRequestContext (). put (MessageContext.HTTP_REQUEST_HEADERS, theHeaders);

Кажется, что работает, но у меня есть эта ошибка: javax. xml .ws. soap .SOAPFaultException: в заголовке не найдена длина содержимого

Есть предложения, пожалуйста?

Спасибо

...