Как вызвать метод java с типом Long в Mule4? - PullRequest
1 голос
/ 01 мая 2020

Мой Java класс имеет конструктор, подобный

public Authenticator(String username, String applicationId, String zz, String yy, String zz,
            String vv,Long cc) {
        ..
    }

Я инициирую этот конструктор в муле следующим образом:

    <java:new doc:name="Authenticator" doc:id="b63fe250"
            class="org.xxx" constructor="Authenticator(String,String,String,String,String,String,Long)"
            target="authenticator">
            <java:args ><![CDATA[#[output application/java
---
{
arg0 : p('zz') , 
arg1:vars.'vv', 
arg2:'xx', 
arg3:'aa',
arg4:vars.'zz',
arg5:'zz',
arg6:vars.nonce as Long
}]]]></java:args>
        </java:new>

Здесь я получаю; Невозможно разрешить ссылку Long. в 10: 10 "оценивающее выражение:" выходное приложение / java

Как определить переменную nonce как Long в муле?

1 Ответ

0 голосов
/ 03 мая 2020

Dataweave не работает с примитивными типами. Работает с классами. Затем он пытается преобразовать их в примитивные типы, используя смысл данных. Попробуйте использовать номер, но с классом Long. Это должно выглядеть следующим образом:

{
arg0 : p('zz') , 
arg1:vars.'vv', 
arg2:'xx', 
arg3:'aa',
arg4:vars.'zz',
arg5:'zz',
arg6:vars.nonce  as Number {class: "java.lang.Long"}
}

Смотрите другие примеры здесь https://simpleflatservice.com/mule4/ValuesAsJavaLong.html

...