繁体   English   中英

Class 在 WSO2 API 在 MicroIntegrator 中没有被调用

[英]Class not getting called in WSO2 API in MicroIntegrator

我正在尝试从 WSO2 API 调用 class。我已将 class 调解器项目的 JAR 文件复制到<MI_HOME>/lib 但是,我仍然收到此错误:

错误加载 class:com.test.mediator.ChangeValue - Class 未找到 java.lang.ClassNotFoundException:com.test.mediator.ChangeValue 无法被 synapse-core_2.1.72.wso2v18 找到

为了更好地理解调用 class 的顺序如下:

 <class name="com.test.mediator.ChangeValue"/>
<log level="custom">
    <property name="After CLASS" value="in Seq"/>
    <property expression="$ctx:NameN" name="NameClass"/>
</log>

对于class,class定义如下:

package com.test.mediator;

import org.apache.synapse.MessageContext; 
import org.apache.synapse.mediators.AbstractMediator;

public class ChangeValue extends AbstractMediator {

public boolean mediate(MessageContext context) { 
    // TODO Implement your mediation logic here 
    changeVal(context);
    return true;
}

public void changeVal(MessageContext context) {
    String Namem = (String) context.getProperty("NAMEE");
    String Namen = "Hary";
    context.setProperty("NameN", Namen);
  }
}

为什么会出现此错误?

此错误表明 MI 无法在运行时加载自定义 class。 请按照以下步骤进行尝试。

  1. 如果已经在运行,请停止服务器。
  2. 从 MI/dropins 和 MI/lib 文件夹中删除 class 介体。
  3. 在自定义中介项目中检查 pom.xml 文件以检查打包类型。 (应该有一个标签<packaging>bundle/jar</packaging> )。
  4. 如果pom中包含<packaging>bundle</packaging> ,直接将jar复制到MI/dropins 如果 pom 不包含标签或包含值为 jar 的包装作为<packaging>jar</packaging>将中介 jar 复制到MI/lib文件夹。
  5. 重启服务器试试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM