Gridens - информационные технологии

Сообщение SOAP НЕ ДОЛЖНО содержать объявление типа документа (DTD) в wso2 ESB 4.9.0 при вызове API.

Я пытаюсь вызвать сервер идентификации (для Reckon API), он отправит мне HTML-страницу, которой я должен передать имя пользователя и пароль для авторизации, но в WSO2 ESB появляется следующее сообщение:

Сообщение SOAP НЕ ДОЛЖНО содержать объявление типа документа (DTD).

Я вижу детали html-страницы в журнале ESB, но.

Remaining input stream :[ </li> </ul> </div> </div> </div> </div> </div> <script id='modelJson' type='application/json'>{"loginUrl":"/login?signin=cdf07a3cb572cd62438b93ab5fa39b48","antiForgery":{"name":"idsrv.xsrf","value":"Fws6qKgkCal2HVkpciKAuvce-95kVOdD5W2gJUSYzKivHJctKWRdpxoJDQmsJMS2kR7yI8cdRrDHKYafWGNY7-iiGlulWkqPBHF8rUoJXfg"},"allowRememberMe":true,"rememberMe":false,"username":null,"externalProviders":[{"text":"Microsoft","href":"https://identity.reckon.com/external?provider=Microsoft&signin=cdf07a3cb572cd62438b93ab5fa39b48"},{"text":"Google","href":"https://identity.reckon.com/external?provider=Google&signin=cdf07a3cb572cd62438b93ab5fa39b48"}],"additionalLinks":null,"errorMessage":null,"requestId":"b07d58ce-9a48-448f-a665-31a40c08ae09","siteUrl":"https://identity.reckon.com/","siteName":"Reckon IdentityServer","currentUser":null,"logoutUrl":"https://identity.reckon.com/logout"}</script> <script src="/assets/scripts.js"></script> </body> </html> ]

И ошибка:

org.apache.axis2.builder.BuilderUtil} - OMException in getSOAPBuilder org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createDTD(StAXSOAPModelBuilder.java:462) org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:282) org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:204) org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.(StAXSOAPModelBuilder.java:154) org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.(StAXSOAPModelBuilder.java:140) org.apache.axis2.builder.BuilderUtil.getSOAPBuilder(BuilderUtil.java:659) org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:206) org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:146) org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:109) org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:68) org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:348) org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:445) org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:225) org.apache.axis2.client.OperationClient.execute(OperationClient.java:149) org.apache.synapse.message.senders.blocking.BlockingMsgSender.sendReceive(BlockingMsgSender.java:254) org.apache.synapse.message.senders.blocking.BlockingMsgSender.send(BlockingMsgSender.java:175) org.apache.synapse.mediators.builtin.CallMediator.handleBlockingCall(CallMediator.java:113) org.apache.synapse.mediators.builtin.CallMediator.mediate(CallMediator.java:85) org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81) org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48) org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149) org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:175) org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:317) org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:149) org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:748) 

Кто-нибудь раньше сталкивался с этой проблемой?

19.07.2017

Ответы:


1

Включите построитель сообщений и средство форматирования для текста/xml типа conent (для содержимого html) в /repository/conf/axis2/axis2.xml

Конструктор сообщений

 <messageBuilder contentType="text/html"
                        class="org.wso2.carbon.relay.BinaryRelayBuilder"/>

Средство форматирования сообщений

<messageFormatter contentType="text/html"
                        class="org.wso2.carbon.relay.ExpandingMessageFormatter"/>
19.07.2017
  • Привет Дженанантхан, Спасибо за ваш ответ. Я пытался добавить их и перезапустить ESB, но все равно это не работает. Та же ошибка :( 21.07.2017

  • 2

    Я нашел решение и опубликовал его для других людей, таких как я. Мы должны добавить тип содержимого text/javascript в файл axis2. Как вы можете видеть из журнала, ответ представляет собой javascript.

    <messageBuilder contentType="text/javascript"
                   class="org.apache.synapse.commons.json.JsonStreamBuilder"/>
    
    <messageFormatter contentType="text/javascript"
                    class="org.apache.synapse.commons.json.JsonStreamFormatter"/>
    

    Надеюсь, это поможет другим людям.

    22.05.2018
    Новые материалы

    Журналы Py № 2: Если, Элиф, Иначе?
    У меня такое чувство, будто я давно ничего не писал, хотя прошло два дня с тех пор, как я опубликовал свою первую историю. В любом случае, сегодня произошло много всего, так что приступим...

    Работа в Реакции
    Я изучаю React в Bloc прямо сейчас. До сих пор я изо всех сил пытался понять темы. Тем не менее, я только что закончил проблему, над которой некоторое время размышлял, и хочу записать свой..

    Нужен ли банкам искусственный интеллект, чтобы кардинально изменить свою работу?
    Почему необходимо использовать искусственный интеллект в банковской сфере? Существенное использование многочисленных инноваций ИИ, таких как машинное обучение , глубокое обучение и..

    Какую последнюю статью вы считаете стоящей поделиться?
    Я люблю читать качественные статьи. Не стесняйтесь делиться своей работой.

    Преобразование CoreML, позволяющее использовать Fast-Neural-Style-Transfer на iOS и MacOS.
    Как использовать Fast-Neural-Style-Transfer на iOS Преобразованная модель: GitHub — john-rocky/CoreML-Models: Преобразованный зоопарк моделей CoreML...

    ИИ в правоохранительных органах: мощный инструмент с двойной природой
    Искусственный интеллект (ИИ) революционизирует правоохранительную деятельность, предлагая инновационные тактики расследования, повышая достоверность доказательств и оптимизируя процессы. Тем..

    Autoencoder Average Distance  — классический способ, используемый внутри Microsoft для выявления сходства…
    Среднее расстояние автоэнкодера (AAD) использует более простой подход для определения расстояния между двумя наборами данных. Нейронный автоэнкодер может преобразовать любой элемент данных в..