You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在WSO2 Integration Studio中创建集成时出现运行时错误

解决WSO2 Data Mapper Mediator的NullPointerException问题

错误详情

ERROR {SequenceMediator} - {api:StagingIntegration} Runtime error occurred while mediating the message java.lang.NullPointerException
    at java.base/java.io.Reader.<init>(Reader.java:167)
    at java.base/java.io.InputStreamReader.<init>(InputStreamReader.java:72)
    at org.wso2.carbon.mediator.datamapper.engine.input.readers.JSONInputReader.readFromInputStream(JSONInputReader.java:79)
    at org.wso2.carbon.mediator.datamapper.engine.input.readers.JSONInputReader.read(JSONInputReader.java:59)
    at org.wso2.carbon.mediator.datamapper.engine.input.InputBuilder.buildInputModel(InputBuilder.java:59)
    at org.wso2.carbon.mediator.datamapper.engine.core.mapper.MappingHandler.doMap(MappingHandler.java:90)
    at org.wso2.carbon.mediator.datamapper.DataMapperMediator.transform(DataMapperMediator.java:438)
    at org.wso2.carbon.mediator.datamapper.DataMapperMediator.mediate(DataMapperMediator.java:314)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:110)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:242)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:820)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:322)
    at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:627)
    at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:208)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:298)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)

问题分析

从堆栈轨迹可以看出,空指针异常发生在JSONInputReader.readFromInputStream方法中,本质是传递给JSON输入读取器的输入流为null,意味着Data Mapper Mediator执行时没有获取到有效的消息内容。

排查与解决步骤

  • 确认消息体存在:在Data Mapper Mediator前添加Log Mediator,配置打印$body或$ctx:MESSAGE_PAYLOAD,验证执行到Data Mapper时消息体不为空。
  • 检查输入数据源配置:如果Data Mapper不是使用默认的消息体,而是自定义属性作为输入,需确认该属性已通过Property Mediator正确赋值,且值不为null。
  • 排查前置Mediator影响:检查序列中Data Mapper之前的所有Mediator(如Callout、PayloadFactory、Filter等),确保它们没有清空消息体,或处理后正确传递了完整消息。
  • 验证输入数据格式:Data Mapper配置的输入类型为JSON,需确保实际输入是合法的JSON数据,而非空字符串、XML或其他非JSON格式内容。
  • 启用调试模式:开启Synapse调试,逐步跟踪消息在每个Mediator处理后的状态,定位消息体丢失的具体环节。

内容的提问来源于stack exchange,提问作者user21348790

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:52:38