以编程方式发送mule消息(以前:从java访问mule http端点)

时间:2013-05-14 12:22:11

标签: java mule

滚动到最后,找到解决主题问题的方法。最初的问题是要求一些不同的东西。


作为更大流程的一部分,我需要一起获取并链接两个相关的数据集。检索数据的方式(动态crm,n:n关系......)迫使我们再次检索第二组数据,以便它具有所有必要的信息。在对此数据进行较大转换的一部分期间,我想访问用于从crm获取数据的http端点,检索第二组数据并对其进行处理。我可以像这样通过DefaultEndPointFactory获取端点:

DefaultEndpointFactory def = new DefaultEndpointFactory();
def.getInboundEndpoint("uri").getConnector;

但是没有办法真正发送mulemessage。

解决: 问题是你不能在MuleMessage上设置入站属性,并且流程依赖于其中一些要运行的(路径,查询参数等)。

您似乎可以使用此输入作用域属性:

m.setProperty("test", (Object)"test", PropertyScope.INBOUND);

有没有办法让这种方法有效,或者是另一种访问流程的方法?我尝试使用mulecontext来获取流量:

muleContext.getRegistry().lookupFlowConstruct("myflow");

但它没有任何看起来有用的内容。


解决方案: 正如David Dossot在他的回答评论中所建议的那样,我能够用muleClients request方法解决这个问题。

muleContext.getClient().request(url, timeout);

然后像往常一样用GET参数等构建url。

1 个答案:

答案 0 :(得分:2)

我不是100%肯定你想要实现的目标,但无论如何,从Java代码使用Mule传输的正确方法是使用MuleClient,您可以使用{{1}访问}。

例如,muleContext.getClient()方法允许您传递自动添加到入站范围的属性映射。在幕后,Mule负责创建操作所需的端点。

关于流程:你想用它做什么?调用它?