Недавно я обновил 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?
В вашем посреднике класса вы должны создать методы установки и получения для имени переменной, объявленной в вашем посреднике класса.
Note: The variable value must follow the same name in your sequence and also the same variable name
Например мой классный посредник
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>
Это проблема в одном из основных классов ядра синапса, которая не позволяет установить значения логического типа в посредниках. Я исправил это. Между тем, если у вас все еще есть эта проблема, используйте прикрепленную банку (с исправлением), чтобы заменить исходную (synapse-core_2.1.7.wso2v80) в папке lib (../wso2/wso2ei/6.4.0 / wso2 / компоненты / плагины /).
Ссылка: https://github.com/OmerQ/WSOFixJar/blob/master/synapse-core_2.1.7.wso2v80.jar