Проблема с форматом WSO2 EI 6.6.0 hal_json

#wso2 #wso2esb #drupal-8 #wso2ei

#wso2 #drupal-8 #wso2-предприятие-интегратор #wso2-esb

Вопрос:

6.0 для вызова конечной точки веб-службы Drupal 8 RESTful, которая возвращает ответ в формате hal_json. Я никогда раньше не сталкивался с этим форматом, но это то, в чем содержится ответ Drupal 8. Тип содержимого — «application / hal json». Для получения дополнительной информации, это ссылка на Drupal 8 — https://www.drupal.org/docs/8/core/modules/rest/3-post-for-creating-content-entities

Я использую посредник свойств для преобразования ответа из формата hal_json в XML, но я получаю следующую ошибку:

Исключение OMException в getSOAPBuilder org.apache.axiom.om.Исключение OMException: com.ctc.wstx.exc.WstxUnexpectedCharException: неожиданный символ ‘{‘ (код 123) в prolog; ожидаемый ‘<‘

Я искал эту ошибку в Интернете и обнаружил, что этот тип ошибки обычно возникает, когда ответ API находится в формате, который не включен в WSO2 (он должен быть включен в axis2.xml файл). Может кто-нибудь, пожалуйста, скажите мне, какое свойство мне нужно добавить в мой axis2.xml файл? Я думаю, что это должно быть свойство форматирования сообщений и builder.

Ответ №1:

Я не работал с указанным типом сообщения JSON. Но если это допустимое сообщение JSON, вы можете определить конструктор JsonStreamBuilder для этого типа сообщения. Конструктор сообщений может быть определен следующим образом в axis2.xml файл в разделе messageBuilders в каталоге [EI_HOME]/conf/axis2

 <messageBuilders>
..
<messageBuilder contentType="application/hal json"                                   
  class="org.wso2.carbon.integrator.core.json.JsonStreamBuilder"/>
..
</messageBuilders>
  

После изменения axis2.xml вам необходимо выполнить перезагрузку сервера, чтобы это вступило в силу.