WSO2 ESB 任务(调度程序)不起作用
WSO2 ESB task (scheduler) doesn't work
我必须使用 ESB 任务(调度程序)向我的 jms 代理服务(服务通过 JMS 接收和发回消息)发送 XML 消息。
我尝试了 2 种解决方案。
1个解决方案
我在添加的任务中填写:
message -> my XML
injectTo -> set 'proxy'
proxyName -> my proxy name
结果是,我的 jms 代理收到消息但没有 JMS_Corelation(我猜消息是在 ESB 中本地发送的)并且我收到错误:
Unexpected error sending message back
org.apache.axis2.AxisFault: Transport out has not been set
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:432)
at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:163)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:321)
at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:94)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:255)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:556)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:198)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at org.apache.axis2.transport.local.LocalResponder.handleResponse(LocalResponder.java:214)
at org.apache.axis2.transport.local.LocalResponder.invoke(LocalResponder.java:111)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:163)
at org.apache.synapse.mediators.builtin.RespondMediator.mediate(RespondMediator.java:23)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:255)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:556)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:198)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
如果我将此消息发送到队列,所有工作流程都可以正常工作,因此配置良好。
2解
我在添加的任务中填写:
message -> my XML
to -> my jms endpoint
format -> message format
结果是,没有结果,因为什么都没有发生。我的 jms 代理服务没有收到任何消息。
有人知道如何解决这个问题吗?
也许还有另一种方法可以做到这一点?
您的 JMS 代理已配置为从 JMS 队列或主题接收消息。
您应该尝试编写一个命名序列,将适当的消息发送到您的队列或主题中。然后,配置您的计划任务以调用此序列:
- injectTo = 序列
- format = soap11(例如)
- soapAction = mySoapAction(如果需要)
- 留言=
<root>myMessage</root>
- sequenceName = YourSequenceThatSendTheMessageToJMS
我必须使用 ESB 任务(调度程序)向我的 jms 代理服务(服务通过 JMS 接收和发回消息)发送 XML 消息。 我尝试了 2 种解决方案。
1个解决方案
我在添加的任务中填写:
message -> my XML
injectTo -> set 'proxy'
proxyName -> my proxy name
结果是,我的 jms 代理收到消息但没有 JMS_Corelation(我猜消息是在 ESB 中本地发送的)并且我收到错误:
Unexpected error sending message back
org.apache.axis2.AxisFault: Transport out has not been set
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:432)
at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:163)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:321)
at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:94)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:255)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:556)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:198)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at org.apache.axis2.transport.local.LocalResponder.handleResponse(LocalResponder.java:214)
at org.apache.axis2.transport.local.LocalResponder.invoke(LocalResponder.java:111)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:163)
at org.apache.synapse.mediators.builtin.RespondMediator.mediate(RespondMediator.java:23)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:255)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:556)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:198)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
如果我将此消息发送到队列,所有工作流程都可以正常工作,因此配置良好。
2解
我在添加的任务中填写:
message -> my XML
to -> my jms endpoint
format -> message format
结果是,没有结果,因为什么都没有发生。我的 jms 代理服务没有收到任何消息。
有人知道如何解决这个问题吗? 也许还有另一种方法可以做到这一点?
您的 JMS 代理已配置为从 JMS 队列或主题接收消息。
您应该尝试编写一个命名序列,将适当的消息发送到您的队列或主题中。然后,配置您的计划任务以调用此序列:
- injectTo = 序列
- format = soap11(例如)
- soapAction = mySoapAction(如果需要)
- 留言=
<root>myMessage</root>
- sequenceName = YourSequenceThatSendTheMessageToJMS