如何在mule 4中的运行时创建流

如何在mule 4中的运行时创建流,mule,anypoint-studio,mule4,Mule,Anypoint Studio,Mule4,我想在运行时基于流模板创建一个新的mule流。我发现mule 4中的Java模块可以帮助我实现这一点,所以在我的主流程中,我尝试调用Java实例方法: <http:listener doc:name="Listener" doc:id="5b0f79ff-1a60-4c1a-bc9d-fbe350f4e595" config-ref="HTTP_Listener_config" path="/producer"

我想在运行时基于流模板创建一个新的mule流。我发现mule 4中的Java模块可以帮助我实现这一点,所以在我的主流程中,我尝试调用Java实例方法:

<http:listener doc:name="Listener" doc:id="5b0f79ff-1a60-4c1a-bc9d-fbe350f4e595" config-ref="HTTP_Listener_config" path="/producer"/>

<java:new doc:name="New DynamicProducerFlowGenerator" doc:id="6c8cf087-0601-4b89-9d24-16650b9a6e6f" class="DynamicProducerFlowGenerator" constructor="DynamicProducerFlowGenerator()" target="DynamicProducerFlowGenerator"/>

<java:invoke doc:name="Invoke" doc:id="d5258c18-74e8-4c86-a0ae-758ad41d1b32" instance="#[vars.DynamicProducerFlowGenerator]" class="DynamicProducerFlowGenerator" method="initialise()"/>
}

但是,当我尝试运行此操作时,总是出现错误:

Message        : Invocation of Method 'initialise()' from Class 'DynamicProducerFlowGenerator' without any argument resulted in an error.

Cause: org.mule.api.MuleRuntimeException - Couldn't find config via SPI mechanism. Corrupted Mule core jar?
我认为问题在于这一行代码

“MuleContext MuleContext=muleContextFactory.createMuleContext();”

但我不知道如何解决它。这是我在pom.xml中的一些依赖项:

 <dependency>

  <groupId>org.mule.tools.devkit</groupId>

  <artifactId>mule-devkit-annotations</artifactId>

  <version>3.9.7</version>

  <scope>provided</scope>

</dependency>

<dependency>

    <groupId>org.mule</groupId>

    <artifactId>mule-core</artifactId>

    <version>3.9.0</version>

</dependency>

    <dependency>

  <groupId>org.mule.module</groupId>

  <artifactId>mule-java-module</artifactId>

  <version>1.2.6</version>

  <classifier>mule-plugin</classifier>

</dependency>

<dependency>

    <groupId>org.mule.modules</groupId>

    <artifactId>mule-module-spring-config</artifactId>

    <version>3.9.0</version>

org.mule.tools.devkit
mule devkit注释
3.9.7
假如
org.mule
骡芯
3.9.0
org.mule.module
mule java模块
1.2.6
mule插件
org.mule.modules
mule模块弹簧配置
3.9.0
有人能帮我吗?在mule 4中,有没有其他方法可以用来在运行时创建新的流


首先,您的依赖关系似乎混合了Mule 3和Mule 4的依赖关系。这是行不通的,它们是不相容的。例如,Devkit是Mule 3工具。如果您正在使用适用于Mule 3的方法(在您的示例中似乎就是这种情况),则在Mule 3中使用该方法时将不起作用

其次,我想问一下,通过动态创建流,您试图解决什么问题。我不确定Mule 4是否支持它们。我认为这不是一个好的做法。在Java组件中调用mule核心或类似mule库中的任何东西肯定不是一个好的实践。例如,访问Mule上下文

我建议准确地定义您需要实现的目标,并尝试更好地支持和推荐的替代方法。例如,使用,从流创建参数化的“连接器”,或在Java中创建连接器和模块

 <dependency>

  <groupId>org.mule.tools.devkit</groupId>

  <artifactId>mule-devkit-annotations</artifactId>

  <version>3.9.7</version>

  <scope>provided</scope>

</dependency>

<dependency>

    <groupId>org.mule</groupId>

    <artifactId>mule-core</artifactId>

    <version>3.9.0</version>

</dependency>

    <dependency>

  <groupId>org.mule.module</groupId>

  <artifactId>mule-java-module</artifactId>

  <version>1.2.6</version>

  <classifier>mule-plugin</classifier>

</dependency>

<dependency>

    <groupId>org.mule.modules</groupId>

    <artifactId>mule-module-spring-config</artifactId>

    <version>3.9.0</version>