ОШИБКА WSO2 - Ошибка PropertyHelper при вызове метода установки с именем

Недавно я обновил 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?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
445
2

Ответы 2

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

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

Другие вопросы по теме