欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI
欢迎使用普元文档库
问题描述:通过ESB进行ws穿透后报错:
com.primeton.tip.org.springframework.integration.message.MessageHandlingException: error occurred in message handler [com.primeton.esb.core.HeaderRouterHandler@d6f628]
at com.primeton.esb.core.RouterHandler.handleMessage(RouterHandler.java:50)
at com.primeton.tip.org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:104)
at com.primeton.tip.org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:91)
at com.primeton.tip.org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:44)
at com.primeton.tip.org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:177)
at com.primeton.tip.org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:150)
at com.primeton.tip.org.springframework.integration.channel.MessageChannelTemplate.doSend(MessageChannelTemplate.java:223)
at com.primeton.tip.org.springframework.integration.channel.MessageChannelTemplate.send(MessageChannelTemplate.java:182)
at com.primeton.esb.model.outbound.impl.AbstractStandardOutbound.send(AbstractStandardOutbound.java:142)
at com.primeton.esb.model.outbound.impl.AbstractStandardOutbound$Outbound_RequestHandler.handleMessage(AbstractStandardOutbound.java:247)
at com.primeton.tip.org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:104)
at com.primeton.tip.org.springframework.integration.dispatcher.UnicastingDispatcher.access$000(UnicastingDispatcher.java:47)
at com.primeton.tip.org.springframework.integration.dispatcher.UnicastingDispatcher$1.run(UnicastingDispatcher.java:86)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.IllegalArgumentException: channel must not be null
at com.primeton.tip.org.springframework.util.Assert.notNull(Assert.java:112)
at com.primeton.tip.org.springframework.integration.channel.MessageChannelTemplate.doSend(MessageChannelTemplate.java:221)
at com.primeton.tip.org.springframework.integration.channel.MessageChannelTemplate.send(MessageChannelTemplate.java:182)
at com.primeton.esb.core.RouterHandler.sendMessage(RouterHandler.java:78)
at com.primeton.esb.core.RouterHandler.handleResult(RouterHandler.java:67)
at com.primeton.esb.core.RouterHandler.handleMessageInternal(RouterHandler.java:63)
at com.primeton.esb.core.RouterHandler.handleMessage(RouterHandler.java:45)
... 15 more
问题原因:在创建ESB模型后,新建多个endpoint,在删除endpoint的时候未选择删除对应的server下的文件资源,导致多个相同的endpoint同时存在,server在调用的时候无法找到对应的endpoint,从而建立正确的channel,如图:
解决方案:找到对应的ESB server安装目录,找到文件夹esb\studio\server\EOS\_srv\work\user\cgn.esb.common\cgn\esb\common\endpoint;删除下图中的对应的文件以及文件夹,再重新启动server: