wso2自定义调解员内部碳应用程序

时间:2012-05-30 21:35:50

标签: wso2 esb wso2carbon mediator

我开发了一个自定义中介及其相应的Factory / Serializer类,以便我可以在序列中为它配置复杂的配置选项。这是使用碳工作室的碳应用项目制作的。

问题是我可以使配置元素工作的唯一方法是在 .car 文件之外部署jar文件。

我可以直接部署 .car 文件以使其正常工作吗?我必须在哪里放置 META-INF / services 文件夹才能正常工作?

这是我的CarbonAppProject结构

CarbonApp
+--artifacts
   +--lib
   +--library
      +--bundle
         +--jXLS <-- Java Library Artifact
   +--synapse
      +--mediator
         +--XlsToObjectMediator <-- Custom Mediator Artifact
+--builder
+--META-INF
   +--services
      +--org.apache.synapse.config.xml.MediatorFactory <-- FILE
      +--org.apache.synapse.config.xml.MediatorSerializer <-- FILE
+--src
   +--main
      +--java
         +--<package> <-- mediator, factory and serializer clases

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

你无法使用这个版本的Carbon Studio,但它可以使用它的新版本。您可以从http://builder1.us1.wso2.org/~developerstudio/developer-studio/2.0.0/RC1/wso2-developer-studio_2.0.0.RC1.zip

获取更新版本

步骤。

  1. 创建ESB Custom mediator项目并在那里创建中介源
  2. 将META-INF / services文件夹复制到同一项目的src / main / resources文件夹中。
  3. 使用Maven构建Custom Mediator项目
  4. 创建Java库工件项目并确保向其添加jXLS库。
  5. 使用Maven构建Java库工件项目
  6. 创建碳应用项目
  7. 添加Custom Mediator Project和Java Library Artifact项目作为Carbon Application Project的依赖项。
  8. 使用Maven构建C-App项目
  9. 现在,您将能够在ESB中运行ESB Custom Mediator而不会出现任何问题。

    .
    |-- pom.xml
    `-- src
        `-- main
            |-- java
            |   `-- ddd
            |       `-- dd.java
            `-- resources
                `-- META-INF
                    `-- services
                        |-- org.apache.synapse.config.xml.MediatorFactory
                        `-- org.apache.synapse.config.xml.MediatorSerializer
    

    您的调解员项目结构与上述类似

    希望这会有所帮助!!

    Thankss。

    / Harshana

答案 1 :(得分:1)

我不认为声明JavaLibraryArtifact项目和Custom mediator项目之间的项目级依赖关系将解决这个问题。

但是您可以通过从mediator项目向实际的第三方库添加依赖项来实现此目的。

步骤:

  1. 右键单击Custom mediator项目,选择Build Path - &gt;配置构建路径
  2. 转到“库”选项卡,然后选择“添加罐子”按钮。这将填充项目浏览器对话框
  3. 在项目浏览器中展开JavaLibraryArtifact项目,然后从文件列表中选择jXLS库,然后单击“确定”
  4. 现在您已将jXLS添加到Custom mediator项目构建路径中。因此,您不会在Custom Mediator项目中看到任何错误。

    如果打开Custom mediator项目的.Classpath文件,您将看到类似于以下内容的条目。

    <classpathentry kind="lib" path="/JavaLibArtifactProject/jXLS.jar"/>
    

    为了避免Maven的编译错误,您需要在Custom mediator项目pom.xml中为jXLS库添加依赖项。

    通过执行上述步骤,您可以避免在项目中复制JXLS库。

    希望这会有所帮助!!

    感谢。

    / Harshana