Java 在Mule中调用类的主方法

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


谢谢

您可以添加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"/>

就这些

检查过了。它起作用了