0

我有一个 Java 类,每次运行程序时都会将数据写入文件。Java 类是在 Mule 项目中编写的,我想使用 mule 流来调用这个 Java 类。所以我的问题是 - 我如何在 Mule ESB 的 Flow 中调用/启动类的主要方法?整个目标是自动化这个过程。流程还有其他组件,调用 Java 类的 main 方法将成为流程的一部分。

谢谢

4

3 回答 3

0

我能想到2个选择——

(1)制作一个组件并从那里调用您的任何其他类。或者,如果您可以将现有类修改为 Callable 并实现 onCall 方法并从那里调用您的业务方法。

<component class="com.test.TestClass" />

public class TestClass implements Callable {
public Object onCall(MuleEventContext eventContext) throws Exception {
        //call business method from here.
    }
}

(2) 使用groovy进行java调用。

<scripting:component>
            <scripting:script engine="groovy">
                // Your java code here
            </scripting:script>
        </scripting:component>
于 2013-04-17T13:24:33.220 回答
0

您可以添加一个 Java 组件并指定要调用的类,记住一件事,如果流程正在处理 bean,那么以 bean 作为参数的方法将像这样调用

public User process(User user) {
    //call your main method here
    return user;
}
于 2013-04-17T10:45:37.893 回答
0

只需使用 Invoke 方法(Mule 包括:https ://docs.mulesoft.com/mule-user-guide/v/3.8/invoke-component-reference )。虽然 Groovy 编写脚本通常不支持 Spring,并且如果您要运行的类是 SpringConnected(带有所有注释等),则您无法通过 Groovy 执行此操作(仅通过使用脚本控制)。

如此简单:<invoke object-ref="DirectoryChecker" method="run" doc:name="Invoke DirectoryChecker"/>完全足够了。

确保将YouClass其初始化为 bean。

<spring:bean id="YouClass" name="YouClass" class="you.package"/>

就这样。

检查。它正在工作。

于 2016-07-28T13:06:46.843 回答