一、错误信息
Caused by: java.io.IOException: invalid constant type: 18
at javassist.bytecode.ConstPool.readOne(ConstPool.java:1113)
at javassist.bytecode.ConstPool.read(ConstPool.java:1056)
at javassist.bytecode.ConstPool.<init>(ConstPool.java:150)
at javassist.bytecode.ClassFile.read(ClassFile.java:765)
at javassist.bytecode.ClassFile.<init>(ClassFile.java:109)
at javassist.CtClassType.getClassFile2(CtClassType.java:191)
... 92 more
二、解决方案
1. 根据异常日志中dubbo调用javassist编译字节码出错,定位javassist版本问题;
2. 由于同样的dubbo项目在jdk6\jdk7下没有问题,当前项目使用的jdk8,所以应该是jdk8和javassist冲突;
3. 将dubbo引入的javassist-3.15.0-GA去掉,引入更高版本直到javassist-3.18.0-GA项目可以正常启动;