我最近从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之外,还有解决方案吗?
答案 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