ОШИБКА WSO2 - Ошибка PropertyHelper при вызове метода установки с именем - PullRequest
0 голосов
/ 06 сентября 2018

Я недавно обновил WSO2 ESB 4.9.0 до WSO2 EI 6.3.0. Казалось, что все работало нормально, пока я не развернул существующий проект, и теперь я получаю следующую ошибку:

ERROR - PropertyHelper Error invoking setter method named : setSourceIsRemote() that takes a single String, int, long, float, double or boolean parameterargument type mismatch

Это существующий код:

<class name="com.hms.mediator.SFTPMediator">
    <property name="sourceHost" value="myhost"/>
    <property name="sourcePort" value="22"/>
    <property name="sourceUser" value="username"/>
    <property name="sourcePassword" value="pw"/>
    <property name="sourceFilter" value="*\.*"/>
    <property name="sourceIsRemote" value="true"/>
    <property name="deleteFromSource" value="false"/>        
    <property name="archivePath" value="/archive/"/>
    <property name="destinationPath" value="/destination/"/>
    <property name="sourcePath" value="/sourcePath"/>
</class>

Проблема возникает, когда задается логическое значение, в данном случае sourceIsRemote и deleteFromSource. Это работает правильно на старой версии.

Кто-нибудь еще сталкивался с этой проблемой и есть ли решение, кроме перехода на более раннюю версию WSO2?

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Это проблема в одном из базовых классов в ядре Synapse, которая не позволяет устанавливать значения булевых типов в посредниках. Я предоставил решение для этого. Тем временем, если у вас все еще есть эта проблема, используйте прикрепленный jar (с исправлением), чтобы заменить исходный (synapse-core_2.1.7.wso2v80) в папке lib (../wso2/wso2ei/6.4.0). /wso2/components/plugins/).

Ссылка: https://github.com/OmerQ/WSOFixJar/blob/master/synapse-core_2.1.7.wso2v80.jar

0 голосов
/ 26 января 2019

В вашем классе Mediator вы должны создать методы setter и getter для имени переменной, объявленной в вашем посреднике класса.

Примечание. Значение переменной должно следовать за тем же именем в вашей последовательности, а также именем переменной

Например, мой классный посредник

public class RequestValidator extends AbstractMediator {

    private String tokenVariable = "tokenVariable";

    private String passVariable = "passVariable";

    @Override
    public boolean mediate(MessageContext mc) {
    }
}

В моей последовательности

<class name="mediator.RequestValidator">
 <property name="tokenVariable" value="$ctx:authRequest"/>
</class>
...