首页 > 解决方案 > WSO2 EI 6.6.0 hal_json 格式问题

问题描述

6.0 调用 Drupal 8 RESTful Web 服务端点,该端点以 hal_json 格式返回响应。我以前从未遇到过这种格式,但这就是 Drupal 8 响应的内容。Content-Type 是“application/hal+json”。有关更多信息,这是 Drupal 8 链接 - https://www.drupal.org/docs/8/core/modules/rest/3-post-for-creating-content-entities

我正在使用属性调解器将响应从 hal_json 格式转换为 XML,但出现以下错误:

getSOAPBuilder org.apache.axiom.om.OMException 中的 OMException:com.ctc.wstx.exc.WstxUnexpectedCharException:序言中出现意外字符“{”(代码 123);预期'<'

我在网上搜索了这个错误,发现这种类型的错误通常发生在API响应是WSO2中没有启用的格式时(需要在axis2.xml文件中启用)。谁能告诉我我需要将什么属性添加到我的axis2.xml文件中?我认为需要是消息格式化程序和生成器属性。

标签: wso2wso2esbdrupal-8wso2ei

解决方案


我没有使用指定的 JSON 消息类型。但如果它是有效的 JSON 消息,您可以为此消息类型定义 JsonStreamBuilder 构建器。消息构建器可以在[EI_HOME]/conf/axis2目录下messageBuilders下的axis2.xml文件中定义如下

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

修改axis2.xml后,需要重启服务器才能生效。


推荐阅读