解决 WSO2 EI 6.0.0~6.6.0 删除带有 Class 的碳应用时提示 ClassNotFoundException 异常

Posted 菠萝蚊鸭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决 WSO2 EI 6.0.0~6.6.0 删除带有 Class 的碳应用时提示 ClassNotFoundException 异常相关的知识,希望对你有一定的参考价值。

解决 WSO2 EI 6.0.0~6.6.0 删除带有 Class 的碳应用时提示 ClassNotFoundException 异常

这里以 WSO2 EI 6.6.0 为例,报错 jar 包为:synapse-core_2.1.7.wso2v143.jar,github源码地址:wso2-synapse,根据tags下载相应版本的源码。

一、报错原因分析

报错截图:

报错位置在:org.apache.synapse.config.xml.ClassMediatorFactory 的 102行

加了一点日志打印

在删除碳应用时,从动态类中介加载 Class 得到的 Map 是空的。

说明并没有在部署存储中注册动态类中介加载器或者注册了但是又被删掉了。

二、解决办法

1、修改 REST API



WSO2 EI 6.x 的 ClassMediator 都要建一个单独的序列 sequence,把 class 放在 sequence 里面,然后在 REST API 里面调用这个sequence,这个和 ESB 5.0 不一样,5.0 可以直接在 REST API 调 ClassMediator。

2、升级版本

去 github 下载最新版的源码:product-ei,编译最新版本的 WSO2 EI,编译出来最新版本的是 WSO2 EI 6.7.0 SNAPSHOT,最新版本的解决了这个问题。

以上是关于解决 WSO2 EI 6.0.0~6.6.0 删除带有 Class 的碳应用时提示 ClassNotFoundException 异常的主要内容,如果未能解决你的问题,请参考以下文章

解决 WSO2 EI 6.0.0~6.6.0 删除带有 Class 的碳应用时提示 ClassNotFoundException 异常

WSO2 EI 6.0.0 集群部署文档 - MySQL版

WSO2 EI 6.0.0 集群部署文档 - MySQL版

WSO2 ESB / EI / AM 汉化方法

WSO2 ESB / EI / AM 汉化方法

WSO2 ESB / EI / AM 汉化方法