【问题标题】:WSO2 ESB use of Custom MediatorWSO2 ESB 使用自定义中介
【发布时间】:2013-06-08 12:33:52
【问题描述】:

我喜欢为 WSO2 ESB 编写自定义中介。 我为此找到了一些教程,但我没有让它在 WSO2 ESB 中工作。我想我可能在 Class Mediator 所需的路径中有错误,但让我解释一下:

为了编写这个 Mediator,我使用了 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;
    }
}

在下一步中,我创建了一个新的 Carbon 应用程序项目,在“依赖项”上选择了中介。配置如下:

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

我使用右侧的按钮来创建存档。我将此存档复制到“C:\wso2esb\repository\carbonapps\0”。

现在我的问题是:我如何使用这个 Mediator? 它应该像这样工作:

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

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

【问题讨论】:

    标签: class wso2 esb mediator


    【解决方案1】:

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

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

    您必须将 JAR 文件放入 repository/components/lib 文件夹并重新启动您的 ESB

    【讨论】:

      【解决方案2】:

      好的,我遇到了和你一样的问题,我设法通过使用 Eclipse 的 WSO2 Developer Studio 插件创建了一个中介库来添加中介。 (调出新的向导框,选择WSO2/Extensions/Project Types/Mediator Project)

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

      我希望这会有所帮助。

      【讨论】:

        【解决方案3】:

        您应该将类​​中介器部署为 java 库工件并从类中介器中引用它们。也就是说,部署您从 dev studio 创建的 jar 并将 taht 保存在 repository/components/lib 文件夹中并重新启动服务器。 然后点赞;

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

        来自你的序列

        【讨论】:

        • 还是不行。 ESB 无法找到该类。请检查我的包路径,是否正确?
        • 你的包/类名是对的..你有能力构建那个 JAR 吗?也就是说,当您尝试 exposr 您的调解器项目时,它会创建一个 jar。如果您提取并查看,您将在那里看到类文件。因此,如果您将其放在提到的 lib 文件夹中,它应该在 calsspath 中可用。但是您需要重新启动服务器
        • “exposr”是什么意思?我尝试右键单击我的项目并将其导出为 java-jar 文件。我还尝试导出为可部署的 WSO2 存档。我通过两种方式得到一个 jar 文件,但在 WSO2 ESB 中找不到该类。
        【解决方案4】:

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

        【讨论】:

        • 两个都试过了,没有任何效果,如果我点击load class-Button,我仍然会收到错误Class not found in the path
        猜你喜欢
        • 2012-10-05
        • 1970-01-01
        • 1970-01-01
        • 2012-08-31
        • 2012-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多