欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI

页面树结构

欢迎使用普元文档库

Skip to end of metadata
Go to start of metadata

问题描述:通过ESB进行ws穿透后报错:

[default][2017-07-05 18:21:19,348][ERROR][com.primeton.esb.model.outbound.impl.AbstractStandardOutbound$Outbound_RequestHandler:249]

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: