关于javassist.NotFoundException
avassist可以用于反射获取方法参数名称,项目中用到,测试用例通过,当发布到tomcat时报错
javassist.NotFoundException: xxx.xxx.xxxService
javassist官网对此有如下说明:
The default ClassPool returned by a static method ClassPool.getDefault() searches the same path that the underlying JVM (Java virtual machine) has. If a program is running on a web application server such as JBoss and Tomcat, the ClassPoolobject may not be able to find user classes since such a web application server uses multiple class loaders as well as the system class loader. In that case, an additional class path must be registered to the ClassPool.
解决此异常的方法:解决此异常的方法:
1.(推荐)
ClassPool pool = ClassPool.getDefault();
ClassClassPath classPath = new ClassClassPath(this.getClass());
pool.insertClassPath(classPath);
ClassPool pool = ClassPool.getDefault();
pool.appendClassPath("E:\\xxx\\xxx\\target\\xxx_war\\WEB-INF\\lib\\xxx_jar-0.0.1-SNAPSHOT.jar");
2.更多参见:
http://www.csg.is.titech.ac.jp/~chiba/javassist/tutorial/tutorial.html
如果觉得这篇文章有帮助的话,希望可以在右边点个赞,关注一下下也是可以的