滚动到最后,找到解决主题问题的方法。最初的问题是要求一些不同的东西。
作为更大流程的一部分,我需要一起获取并链接两个相关的数据集。检索数据的方式(动态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。
答案 0 :(得分:2)
我不是100%肯定你想要实现的目标,但无论如何,从Java代码使用Mule传输的正确方法是使用MuleClient,您可以使用{{1}访问}。
例如,muleContext.getClient()
方法允许您传递自动添加到入站范围的属性映射。在幕后,Mule负责创建操作所需的端点。
关于流程:你想用它做什么?调用它?