2013-06-12 65 views
2

我喜欢为WSO2 ESB编写自定义介体。 我发现了一些这方面的教程,但我没有得到它在WSO2 ESB中的工作。我想我可能在Class Mediator的路径中有一个错误,但让我解释一切:WSO2 ESB使用自定义介体

对于编写这个调解器,我使用WSO2开发人员Studio for Eclipse Juno。

在那里,我创建了一个名为“b64writer”这一内容的新ESB项目中保:

package org.wso2.carbon; 
import org.apache.synapse.MessageContext; 
import org.apache.synapse.mediators.AbstractMediator; 
public class B64Mediator extends AbstractMediator { 
    public boolean mediate(MessageContext context) { 
     // TODO Implement your mediation logic here   
     String inhalt = context.getEnvelope().toString(); 
     trace.trace("Message: " + inhalt); 
     return true; 
    } 
} 

在下一步中,我创建了一个全新的碳纤维应用程序项目,对“相关性”选择的调解员。造成这种情况的配置是:

  • 组ID:org.wso2.carbon.b64mediator
  • 工件ID:b64mediator
  • 版本:1.0.0

我用右边的按钮一边创建一个档案。这个档案我复制到“C:\ wso2esb \ repository \ carbonapps \ 0”。

现在我的问题:我如何使用这个调解器? 它应该这样工作:

<class name="org.wso2.carbon.B64Mediator" /> 

但事实并非如此。 WSO2 ESB找不到该类。我的错误在哪里?

回答

0

将档案放在repository/components/dropinsrepository/components/lib (if you don't build it as an osgi bundle)目录中。

+1

都尝试,实在不行,我仍然得到错误_class不在path_发现如果我点击_Load class_-按钮。 – muetze

0

您应该将类​​调解器部署为java库工件并从类调解器中引用它们。也就是说,deply你从开发工作室创建的jar并保存在repository/components/lib文件夹中并重新启动服务器。 然后请参考;

<class name="org.wso2.carbon.B64Mediator" /> 

从您的序列

+0

它仍然无法正常工作。 ESB无法找到该课程。请检查我的包裹路径,是否正确? – muetze

+0

你的包/类的名字是正确的。你打包打造这个JAR吗?那是,当你尝试揭示你的中介项目时,它会使一个罐子变成怪物。如果你提取并看到,你会看到类在那里。所以,如果你把它放在提到的lib文件夹中,它应该在calsspath中可用。但是你需要重新启动服务器。 – Ratha

+0

你对“Exposr”有什么意思?我试图在我的项目上右键单击并将其导出为java-jar文件。 我也尝试导出为可部署的WSO2 Archiv。我用这两种方法得到了一个jar文件,但是在WSO2 ESB中找不到这个类。 – muetze

1

好吧,我有同样的问题,因为你,我设法通过WSO2 Developer Studio中添加为Eclipse来制作调解库添加调解。 (打开新的向导框,并选择WSO2/Extensions/Project Types/Mediator Project)

然后创建您的介体或放入项目,并将其作为jar文件导出到/ repository/components/lib文件夹。每次更新jar时,或者在添加jar时运行ESB,都必须重新启动ESB。

我希望这会有所帮助。

0

我不知道你是否已经解决了你的问题。我有同样的问题,但我可以解决它。

我使用Eclipse Kepler中的WSO2 Developer Studio“Mediator Project”创建了我的介体。接下来,我导出到Java/JAR文件,右键单击我的项目,然后在属性中选择“导出生成的类文件和资源”。

你必须将它放在仓库/组件/ lib文件夹,然后重新启动JAR文件的ESB