Java 在Mule中调用类的主方法
我有一个Java类,每次运行程序时都会将数据写入文件。Java类是在Mule项目中编写的,我想使用Mule流来调用这个Java类。所以我的问题是-如何在Mule ESB中调用/启动流中类的主方法?整个目标是使这一过程自动化。流还有其他组件,调用Java类的main方法将是流的一部分Java 在Mule中调用类的主方法,java,automation,mule,invoke,main-method,Java,Automation,Mule,Invoke,Main Method,我有一个Java类,每次运行程序时都会将数据写入文件。Java类是在Mule项目中编写的,我想使用Mule流来调用这个Java类。所以我的问题是-如何在Mule ESB中调用/启动流中类的主方法?整个目标是使这一过程自动化。流还有其他组件,调用Java类的main方法将是流的一部分 谢谢您可以添加Java组件并指定要调用的类,只要记住一件事,如果流正在处理bean,那么将bean作为参数的方法将被如下调用 public User process(User user) { //call y
谢谢您可以添加Java组件并指定要调用的类,只要记住一件事,如果流正在处理bean,那么将bean作为参数的方法将被如下调用
public User process(User user) {
//call your main method here
return user;
}
我可以想出两个选择--
(1) 制作一个组件并从那里调用您的任何其他类。或者,您可以将现有类修改为可调用的类,并实现onCall方法,然后从中调用业务方法
<component class="com.test.TestClass" />
public class TestClass implements Callable {
public Object onCall(MuleEventContext eventContext) throws Exception {
//call business method from here.
}
}
公共类TestClass实现了可调用{
公共对象onCall(MuleEventContext eventContext)引发异常{
//从这里调用业务方法。
}
}
(2) 使用groovy进行java调用
<scripting:component>
<scripting:script engine="groovy">
// Your java code here
</scripting:script>
</scripting:component>
//这里是您的java代码
只需使用Invoke方法(包括Mule:)。虽然Groovy通常不支持Spring,而且如果您想要运行的类是SpringConnection(带有所有注释等),那么您无法通过Groovy(仅通过使用脚本控件)来实现
这么简单:
完全足够了
确保将YouClass
初始化为bean
<spring:bean id="YouClass" name="YouClass" class="you.package"/>
就这些
检查过了。它起作用了