滚动到末尾以获取该主题问题的解决方案。最初的问题是要求一些不同的东西。
<小时/>作为更大流程的一部分,我需要获取两组相关的数据并将其链接在一起。检索数据的方式(动态 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。
最佳答案
我不是 100% 确定你想要实现什么,但无论如何,从 Java 代码使用 Mule 传输的正确方法是使用 MuleClient ,您可以通过 muleContext.getClient()
访问它。
例如,send
方法允许您传递自动添加到入站范围的属性映射。在幕后,Mule 负责创建操作所需的端点。
关于流程:你想用它做什么?调用它吗?
关于java - 以编程方式发送 Mule 消息(以前为 : Accessing mule http endpoint from java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16543026/