背景
开发环境:Eclipse 4.3, Hibernate 3.3.2,Maven 3.0.5
程序加载过程中出现:java.lang.ClassNotFoundException: javassist.util.proxy.MethodFilter
解决方案
1. 分析异常信息,明确问题的本质
Caused by: java.lang.ClassNotFoundException: javassist.util.proxy.MethodFilter
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 21 more
从异常日志上分析,异常类型为java.lang.ClassNotFoundException,明确为类未找到;相应的jar包没有被正确保护,需要在pom.xml.
在pom.xml中增加javassit.jar的配置项:
<project>
......
<repositories>
<repository>
<id>JBoss repository</id>
<url>http://repository.jboss.org/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
......
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.13.0-GA</version>
</dependency>
</dependencies>
</project>