在Mule中调用类的main方法

时间:2013-04-17 09:24:16

标签: java automation mule invoke main-method

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

由于

3 个答案:

答案 0 :(得分:0)

您可以添加Java组件并指定要调用的类,如果流在bean上运行时记住一件事,那么将使用bean作为参数调用此方法

public User process(User user) {
    //call your main method here
    return user;
}

答案 1 :(得分:0)

我可以想到两个选择 -

(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>

答案 2 :(得分: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"/>

就是这样。

经过。它正在发挥作用。