我有一个Java类,每次运行程序时都会将数据写入文件。 Java类是在Mule项目中编写的,我想使用mule流来调用这个Java类。所以我的问题是 - 如何在Mule ESB中的Flow中调用/启动类的主要方法?整个目标是使这一过程自动化。该流具有其他组件,并且调用Java类的main方法将成为流的一部分。
由于
答案 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"/>
就是这样。
经过。它正在发挥作用。