WSO2错误-调用名为setter方法的PropertyHelper错误

时间:2018-09-06 19:23:50

标签: wso2 wso2esb

我最近从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>

在设置布尔值(在这种情况下为sourceIsRemotedeleteFromSource时,会发生此问题。这在旧版本上可以正常工作。

还有其他人遇到过这个问题吗?除了使用早期版本的WSO2之外,还有解决方案吗?

2 个答案:

答案 0 :(得分:0)

在类介体中,必须为在类介体中声明的变量名称创建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>

答案 1 :(得分:0)

这是synapse核心中的一个核心类中的一个问题,它阻止在中介器中设置布尔类型值。我已经提供了解决方法。同时,如果您仍然遇到此问题,请使用附带的jar(带有修复程序)替换lib文件夹(../wso2/wso2ei/6.4.0)中的原始jar(synapse-core_2.1.7.wso2v80)。 / wso2 / components / plugins/)。

链接:https://github.com/OmerQ/WSOFixJar/blob/master/synapse-core_2.1.7.wso2v80.jar