常见问题2:dubbo 依赖包 javassist 版本异常

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/TStana/article/details/72961807

常见问题2:dubbo 依赖包 javassist 版本异常

Error:

dubbo启动报java.lang.ClassNotFoundException: javassist.ClassPath

Reason:

 在dubbo启动的过程中报错误:
java.lang.ClassNotFoundException: javassist.ClassPath,调试发现代码:
     Class<?> clazz = Class.forName(line, true, classLoader)
     执行加载类com.alibaba.dubbo.common.compiler.support.JavassistCompiler
     时报:java.lang.NoClassDefFoundError: javassist/ClassPath

这个错误最后被加工最终变成上边的错误。可是查看项目下发现依赖的包javassist-3.18.1-GA.jar命名存在,打开这些jar包,其中的javassist.ClassPath的确存在啊,于是我换了个版本javassist-3.18.2-GA.jar程序跑起来了.

其实就是因为JavassistCompile使用了类javassist.ClassPath。经过一点点的比较,最后发现 javassist-3.18.1-GA.jar这个包是有问题的,因为其MAINFEST.FM文件是打不开的,解压以后也报各种Class文件格式错误.

Solution:

1.把repository下的javassist3.18.1包删除
2.项目pom文件增加包

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.8.4</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>

        </dependency>
    <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.20.0-GA</version>
        </dependency>

猜你喜欢

转载自blog.csdn.net/TStana/article/details/72961807