gpt4 book ai didi

java - 如何以枚举值作为方法参数调用 Java Mule 组件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:16:00 25 4
gpt4 key购买 nike

我目前正在研究由 Mule ESB 3.5.0(非 EE)公开的 API。此 API 接受包含要通过 HTTP 导入的帐户的 XML 文件,并将此任务定义放入 RabbitMQ 队列中。另一个 Mule 流负责一次一个地从队列中取出项目(感谢 processingStrategy="synchronous" )并将它们提供给平台核心。队列是必需的,因为核心能够一次处理一个文件。

上面的设置已经启动并顺利运行。我现在想要实现的是,让我们的客户能够通过公开 HTTPS 端点来解决集成问题,其中导入状态将可用(由请求的某些 GUID 和 SHA1 标识)。

我创建了一个简单的 POJO 组件来处理添加状态更新的逻辑,方法签名是:

void addStatus(final String guid, final String status)

我设法通过将 bean 定义为来调用上面的方法

<bean id="importStatusComponent" class="com.example.ImportStatusComponent" />

并在 Mule 流程中调用 java 组件:

    <invoke object-ref="importStatusComponent" method="addStatus"
methodArguments="#[flowVars.guid], Import started"
methodArgumentTypes="java.lang.String, java.lang.String" />

由于我们想将其公开给客户并允许他们对状态进行一些编程检查,因此我决定将状态类型更改为基于枚举的字典 ImportStatusEnum .

不幸的是,我无法将枚举输入到 <invoke methodArgument=""> 中的 MEL 中标记属性。

我尝试过的例子:

1) 作为两个单独的 MEL 表达式的参数。

<configuration>
<expression-language>
<import class="com.example.ImportStatusEnum" />
</expression-language>
</configuration>

<invoke object-ref="importStatusComponent" method="addStatus"
methodArguments="#[flowVars.guid], #[ImportStatusEnum.STARTED]"
methodArgumentTypes="java.lang.String, com.example.ImportStatusEnum" />

2) 作为单个 MEL 表达式的参数。

<configuration>
<expression-language>
<import class="com.example.ImportStatusEnum" />
</expression-language>
</configuration>

<invoke object-ref="importStatusComponent" method="addStatus"
methodArguments="#[flowVars.guid, ImportStatusEnum.STARTED]"
methodArgumentTypes="java.lang.String, com.example.ImportStatusEnum" />

3) 完全限定的类名而不是导入(此处未显示)。

如何将枚举值作为方法参数传递给 invoke骡子的组成部分?任何帮助将不胜感激:)

最佳答案

这个可以用

<invoke object-ref="importStatusComponent" method="addStatus" methodArguments="#[flowVars.guid], #[com.example.ImportStatusEnum.STARTED]" methodArgumentTypes="java.lang.String, com.example.ImportStatusEnum" />

关于java - 如何以枚举值作为方法参数调用 Java Mule 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35411368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com