【问题标题】:How to pass Java object to a Java function in mule如何将Java对象传递给mule中的Java函数
【发布时间】:2020-01-02 18:09:37
【问题描述】:

我正在尝试在 mule 中调用 java 函数。我将有效负载转换为 Object 并将其传递给函数。 创建的 Java 对象的名称是 req。 方法 validate 接受类型为 Example 的 Java 对象

public HashMap<String, String> validate(Example req) {.......}

示例类如下所示:

Class Example{
String key1;
String key2;
String key3;
}

XML 配置如下所示:

<java:new constructor="Example(java.lang.String,java.lang.String,java.lang.String)" doc:name="New Example" doc:id="6a1d5c8c-a1f0-446e-ab49-99a21fbbf4b9" class="Entities.Example" target="req">
                <java:args ><![CDATA[#[{key1 :payload.key1,key2: payload.key2, key3:payload.key3}]]]></java:args>
            </java:new>
            <java:invoke doc:name="Invoke" doc:id="dd5f6534-06c8-4f4d-b3aa-c634a629898e" class="Implementations.ValidationServiceImpl" instance="#[vars.validator]" method="validate(Entities.Example)">
        <java:args ><![CDATA[#[vars.req]]]></java:args>
    </java:invoke>

我收到以下错误:

我不知道为什么它没有将java对象作为一个整体传递。

【问题讨论】:

  • 请在流程中发布完整流程和 ValidationServiceImpl 类的构造函数定义,因为您的流程缺少来自 class="Implementations.ValidationServiceImpl" .... 的“
  • @AlanM 我也更新了

标签: java dataweave mule-esb mule4


【解决方案1】:

请尝试一下看看。如果它适合你,请告诉我。在这种情况下,我们需要改进 mule 文档

<java:args >#[{req: vars.req}]</java:args>

【讨论】:

  • 很高兴听到这个消息。我已通知 mule 文档团队更新文档以反映对象是从工作流实例化的 java 自定义类的其他情况
  • 嗨,艾伦,请帮我解决这个问题stackoverflow.com/questions/61095074/…。提前致谢
猜你喜欢
  • 2016-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
  • 2015-01-19
  • 1970-01-01
  • 2014-03-31
  • 2018-01-08
相关资源
最近更新 更多