在骡子的流动之间读取骡子中的数据库

时间:2013-09-19 13:27:16

标签: mule mule-studio

我在与MULE一起探索的第二周。 我的要求是根据http端点的输入读取数据库或读取文件。 我试图在流程中使用CHOICE并确定输入的性质,然后以不同的方向流出。 但我的问题是我不知道如何使用查询值或文件值设置消息。

有人可以帮我提供一些意见吗?

1 个答案:

答案 0 :(得分:1)

请查看此模块

https://github.com/mulesoft/mule-requester-module

它可以在流中的任何位置请求资源。这是最初仅由消息源请求的资源。

用例是:

  • 在流程中间加载文件
  • 从流中间的队列中消耗消息(一,N,全部)。
  • 根据需要从邮件服务器中提取邮件,以便在其中使用其数据。

它是典型的 muleContext.getClient()调用的简单devkit包装

public Object request(String resource, @Optional @Default("1000") long timeout, @Optional String returnClass, @Optional Boolean throwExceptionOnTimeout) throws MuleException {
        MuleMessage message = muleContext.getClient().request(resource, timeout);
        Object result = null;
        if (message != null)
        {
            result = message.getPayload();
            if (returnClass != null)
            {
                try {
                    Transformer transformer = muleContext.getRegistry().lookupTransformer(DataTypeFactory.create(result.getClass()), DataTypeFactory.create(Class.forName(returnClass)));
                    result = transformer.transform(result);
                } catch (ClassNotFoundException e) {
                    throw new DefaultMuleException(e);
                }
            }
        } else if (Boolean.TRUE.equals(throwExceptionOnTimeout))
        {
            throw new DefaultMuleException("No message received in the configured timeout - " + timeout);
        }
        return result;
    }