Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用CAR将自定义中介部署到WSO2 ESB_Java_Maven_Wso2esb_Wso2carbon - Fatal编程技术网

Java 使用CAR将自定义中介部署到WSO2 ESB

Java 使用CAR将自定义中介部署到WSO2 ESB,java,maven,wso2esb,wso2carbon,Java,Maven,Wso2esb,Wso2carbon,我正在尝试部署一个打包在.car文件中的自定义类中介。关于这个问题的讨论不是很具体,也没有可用的例子 我所做的是: 编写了一个自定义类中介,如果作为.jar部署到$CARBON\u HOME/repository/components/lib/ 将上述JAR打包到.car,然后使用管理控制台手动上传到ESB 问题:服务器找不到中介的类: [2017-01-30 18:12:37,810] WARN - SynapseXMLConfigurationFactory Proxy Service c

我正在尝试部署一个打包在
.car
文件中的自定义类中介。关于这个问题的讨论不是很具体,也没有可用的例子

我所做的是:

  • 编写了一个自定义类中介,如果作为
    .jar
    部署到
    $CARBON\u HOME/repository/components/lib/
  • 将上述JAR打包到
    .car
    ,然后使用管理控制台手动上传到ESB
  • 问题:服务器找不到中介的类:

    [2017-01-30 18:12:37,810]  WARN - SynapseXMLConfigurationFactory Proxy Service configuration: test cannot be built - Continue in fail-safe mode
    org.apache.synapse.SynapseException: Error loading class : nl.my.mediators.HashMediator - Class not found
        at org.apache.synapse.config.xml.ClassMediatorFactory.createSpecificMediator(ClassMediatorFactory.java:107)
        at org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:94)
    ...
    
    .car
    文件确实包含有问题的
    .jar

    Archive:  mediators-v1_1_1.1.3-SNAPSHOT.car
      Length      Date    Time    Name
    ---------  ---------- -----   ----
    ...
            0  2017-01-30 18:07   ca-mediators_1.1.3-SNAPSHOT/
         5399  2017-01-30 18:07   ca-mediators_1.1.3-SNAPSHOT/ca-mediators-1.1.3-SNAPSHOT.jar
          257  2017-01-30 18:07   ca-mediators_1.1.3-SNAPSHOT/artifact.xml
    ...
    
    但是,很显然,ESB没有接收到它。
    maven-car插件生成的
    artifact.xml
    文件(顺便说一句,它完全没有文档):

    
    ca-mediators-1.1.3-SNAPSHOT.jar
    

    如何让ESB获取我的JAR中的类?

    关于扩展ESB的章节中描述了此问题:

    当我们通过CAR文件发送中介器时,中介器只能被同一CAR文件中可用的工件(序列、代理服务、API)访问。调解器在全局范围内不可用

    该解决方案在同一页中进一步提出:

    • 编写一个序列,该序列使用类中介
    • 从包含类中介的同一CAR文件打包序列
    • 从其他工件调用序列
    我试过了,结果成功了

    <?xml version="1.0" encoding="UTF-8"?><artifact name="ca-mediators" version="1.1.3-SNAPSHOT" type="lib/library/bundle" serverRole="EnterpriseServiceBus">
        <file>ca-mediators-1.1.3-SNAPSHOT.jar</file>
    </artifact>