wso2 - 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文件中?我认为需要是消息格式化程序和生成器属性。
解决方案
我没有使用指定的 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后,需要重启服务器才能生效。
推荐阅读
- reactjs - 找出缺少 Suspense 错误的源组件
- node.js - 我的 express 后端和 nginx 没有向我的 React 前端发送任何内容
- python - 我如何捕捉这个奇特的异常:sqlalchemy.exc.ProgrammingError: (psycopg2.errors.DuplicateTable) 关系“表”已经存在
- c++ - 调用非静态类成员函数的并行 std::foreach 循环
- excel - 根据日期和数量删除具有当前工作簿的旧工作簿
- powerbi - 如何在 PBI 中使用 DAX 根据标准计算 Avg
- node.js - Set-cookie Header 不会为浏览器设置 cookie
- ubuntu - 在 mat4.h 中使用默认构造函数后,联合使 gcc 抛出错误,在 mat4.cpp 中创建错误,就像没有减速匹配 mat4::mat4
- node.js - Heroku 错误 - ENOENT:没有这样的文件或目录,scandir '/app/server'
- c# - 我怎样才能按时间而不是按位置来处理vector3?