我想根据需要使用 WSO2 EI 的 Data Mapper Mediator 将来自一个端点的 json 响应转换为另一种 json 格式。来自我的端点的示例 JSON 响应是 -
{
"CUSTOMER360": {
"CUSTOMER_ID": "24339"
}
}
我希望将其转换为以下格式:
{
"customer360": {
"customer": {
"id": "24339"
}
}
}
我创建了一个 ESB 项目并给出了一个简单的工作流来了解如何使用 Data Mapper 中介器。我的 API 代码如下 -
<?xml version="1.0" encoding="UTF-8"?>
<api context="/customerDataAPI" name="CustomerDataMapperAPI" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="POST GET">
<inSequence>
<datamapper config="gov:datamapper/CustomerDataConfig.dmc" inputSchema="gov:datamapper/CustomerDataConfig_inputSchema.json" inputType="JSON" outputSchema="gov:datamapper/CustomerDataConfig_outputSchema.json" outputType="JSON"/>
<respond/>
</inSequence>
<outSequence/>
<faultSequence/>
</resource>
</api>
我已经负责将输入和输出 json 模式加载到 Data Mapper 中介并提供正确的映射。此外,在 Data Mapper 的属性视图中提到输入和输出类型为 JSON,并在 CAR 文件中包含映射相关文件。当我调用我的 API 时 - 我收到此错误:
ERROR - SequenceMediator Runtime error occurred whi
le mediating the message
java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:78)
at java.io.InputStreamReader.<init>(InputStreamReader.java:72)
at org.wso2.carbon.mediator.datamapper.engine.input.readers.JSONInputRea
der.readFromInputStream(JSONInputReader.java:76)
at org.wso2.carbon.mediator.datamapper.engine.input.readers.JSONInputRea
der.read(JSONInputReader.java:59)
at org.wso2.carbon.mediator.datamapper.engine.input.InputBuilder.buildIn
putModel(InputBuilder.java:59)
at org.wso2.carbon.mediator.datamapper.engine.core.mapper.MappingHandler
.doMap(MappingHandler.java:88)
at org.wso2.carbon.mediator.datamapper.DataMapperMediator.transform(Data
MapperMediator.java:309)
at org.wso2.carbon.mediator.datamapper.DataMapperMediator.mediate(DataMa
pperMediator.java:259)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractLis
tMediator.java:89)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractLis
tMediator.java:59)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMe
diator.java:158)
有人可以帮我解决我可能出错的地方。另外,请告诉我如何将来自端点的 json 响应输入到 Data Mapper 中介。