如何从Java应用程序触发Mule流


将集成流初始化为企业或web应用程序的一部分是一个重要而基本的需求。幸运的是,触发骡子流很容易。

这里,我将向您展示如何在不需要Mule服务器的情况下使用Mule Jar从Java应用程序启动Mule流。

不管您的应用程序服务器是什么,您都可以以类似于在应用程序中执行您的Java文件的方式触发Mule应用程序。

下面是从Java文件触发Mule流的代码片段。

muleContext = muleContextFactory.createMuleContext(configBuilder);
muleContext.start();

下面是我想从Java类运行的示例Mule流。

骡子流:

< mule xmlns: http = "http://www.mulesoft.org/schema/mule/http"
xmlns = "http://www.mulesoft.org/schema/mule/core"
xmlns: doc = "http://www.mulesoft.org/schema/mule/documentation"
xmlns: spring = "http://www.springframework.org/schema/beans"
xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi: schemaLocation = "http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsdhttp://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd" >
 < http: listener - config name = "HTTP_Listener_Configuration"
host = "localhost"
port = "6061"
doc: name = "HTTP Listener Configuration" / >
 < flow name = "endpointFlow" >
 < http: listener config - ref = "HTTP_Listener_Configuration"
path = "/*"
doc: name = "HTTP" / >
 < set - payload value = "test"
doc: name = "Set Payload" / >
 < logger level = "INFO"
doc: name = "Logger" / >
 < /flow> < /mule>

这里,Mule流监听端口为6061的HTTP请求,并在浏览器中输出消息“test”。

  • 输入:http://localhost:6061

  • 输出:测试。

接下来,编写Java类来触发Mule流。以下是它所需的Mule内部类:

org.mule.api.MuleContext
org.mule.config.spring.SpringXmlConfigurationBuilder
org.mule.context.DefaultMuleContextFactory

结果是:

 SpringXmlConfigurationBuilder configBuilder;
             MuleContext muleContext = null;
             try {
                     configBuilder = new SpringXmlConfigurationBuilder("httptest.xml");
                     muleContext = muleContextFactory.createMuleContext(configBuilder);
                     muleContext.start();

                 } catch (MuleException e) {
                        // TODO Auto-generated catch block
                         e.printStackTrace();
                 }

MuleContextFactory创建需要将Mule XML文件名作为参数传递的Mule上下文。

MuleContext.start()方法将触发流。

现在你完蛋了!

如果您访问URLhttp://localhost:6061,您将看到输出“test”。

此方法允许您以非常简单和容易的方式满足为企业或web应用程序初始化Mule流的需求。

我使用这种方法在windows服务中触发Mule流。

注意:不要忘记在应用程序的lib文件夹中添加与Mule相关的JAR。