Как передать объект Java в функцию Java в mule

введите здесь описание изображения

Я пытаюсь вызвать java-функцию в mule. Я преобразовал полезную нагрузку в объект и передал ее в функцию. Имя созданного объекта Java - req. Метод validate принимает 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 в целом.


person HMT    schedule 02.01.2020    source источник
comment
Опубликуйте полный поток и определение конструктора для класса ValidationServiceImpl в потоке, поскольку в вашем потоке отсутствует ‹java: invoke from class = Implementations.ValidationServiceImpl .... в‹ java: invoke class = Implementations.ValidationServiceImpl ....   -  person Alan M    schedule 02.01.2020
comment
@AlanM Я обновил то же самое   -  person HMT    schedule 02.01.2020


Ответы (1)


Пожалуйста, попробуйте это и посмотрите. Если это сработает для вас, дайте мне знать. В этом случае нам нужно улучшить документацию по мулам.

<java:args >#[{req: vars.req}]</java:args>
person Alan M    schedule 02.01.2020
comment
Приятно слышать. Я проинформировал команду по документации мула, чтобы она обновила документацию, чтобы отразить дополнительный случай, когда объект является настраиваемым классом Java, созданным из рабочего процесса. - person Alan M; 02.01.2020
comment
Привет, Алан, пожалуйста, помогите мне и с этим вопросом stackoverflow.com/questions/61095074/. заранее спасибо - person HMT; 08.04.2020