我正在尝试使用WSO2 ESB的类中介 .
以下是我的调解员课程 .
package samples.mediators;
import org.apache.synapse.MessageContext;
import org.apache.synapse.mediators.AbstractMediator;
public class SiriBankMediator extends AbstractMediator {
@Override
public boolean mediate(MessageContext messageContext) {
System.out.println("Hurraaaayyyy!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
return false;
}
}
正如Writing a WSO2 ESB Mediator所建议的那样,我尝试了"Easier Way",创建了一个包含在类路径中的synapse-core_2.1.0.wso2v8.jar的jar .
MANIFEST.MF如下
Manifest-Version: 1.0
Class-Path: synapse-core_2.1.0.wso2v8.jar
Created-By: 1.7.0_07 (Oracle Corporation)
然后在文章建议中,将jar放到ESB中的repository / components / lib中 .
但是当ESB重新启动后我尝试load class时它会给出错误 Class not found in the path
使用的Jar文件在siri.jar共享
不知道我遵循的步骤中缺少什么 .
先感谢您 .
注意:我使用的是WSO2 Enterprise Service Bus 4.5.1
4 回答
我已经使用maven方法成功部署了您的自定义中介 . 这就是我所做的 .
我创建了以下目录结构,并将您的SiriBankMediator.java放在src / main / java中:
pom.xml文件如下:
然后在包含POM文件的目录中,我们执行
mvn compile package
. 这应该构建你需要放在$ESB_HOME/repository/components/lib
里面的jar文件在名为target的文件夹中 .最后,您可以通过碳管理前端将类加载为org.samples.mediator.SiriBankMediator . 不要忘记重新启动ESB . 希望有所帮助 . :)
我的Custom Mediator jar 的清单看起来像这样:
所以也许不要添加该类路径,如果这不起作用,请尝试使用Java 1.6版本进行构建 . 那一切都应该没问题 .
请记住在“components / lib”中添加jar . 如果WSO2 ESB已经创建了jar的OSGi包,请在启动后检查“components / dropins”文件夹 . 然后课程应该可用 .
尝试使用至少三个字母的中介类包名称,
例如:package samples.mediators;
而不是那个包名,请尝试,包sample.mediators.anything;
这个答案可能对你没有用,因为这个问题就像2年前一样被问到,但是遇到这个问题的任何人都会发现我的答案很有用 .
只需使用samples.mediators以外的包名称即可解决此问题 . 干杯..!