标签:java.lang.illegalargumentexception: interface is not visible from class loader
记录一次java的jar包导入路径问题,导致如下的报错信息:
java.lang.IllegalArgumentException: interface UserMapper is not visible from class loader java.lang.reflect.Proxy.getProxyClass0(Unknown Source) java.lang.reflect.Proxy.newProxyInstance(Unknown Source) MybatisConnectionFactory$MapperProxy.bind(MybatisConnectionFactory.java:81) MybatisConnectionFactory$MapperProxy.access$0(MybatisConnectionFactory.java:80) MybatisConnectionFactory.getSshfameMapper(MybatisConnectionFactory.java:55) UserDataProvider.getInstance(UserDataProvider.java:30) UserServiceImpl.login(UserServiceImpl.java:42) 从代码异常看: @SuppressWarnings("unchecked") private static <T> T bind(Class<T> mapperClazz, SqlSessionFactory sqlSessionFactory) { return (T) Proxy.newProxyInstance(sqlSessionFactory.getClass().getClassLoader(),new Class[]{mapperClazz}, new MapperProxy(mapperClazz, sqlSessionFactory)); }
是这句的问题 sqlSessionFactory.getClass().getClassLoader()
实际上,并非如此,不明白为什么java对于jar文件的路径,导入包重复,总会出现莫名奇妙的报错信息,折磨我一天时间,在google上搜索看到有人说是jar文件路径的问题
最后,说下的环境:我的java application是通过在eclipse的run configurations中配置,填写classpath的时候,将 application 的lib下面,已经tomcat的bin,lib下面的jar包全部导入到了classpath,最终导致的如上报错。
解决这个问题很简单,只要保留tomcat的jar即可,将application的jar包remove就能解决。
希望遇到类似问题的coder,能帮到你!
本文出自 “-=湖边竹=-” 博客,请务必保留此出处http://bronte.blog.51cto.com/2418552/1834862
java.lang.IllegalArgumentException: interface UserMapper is not visible from class loader
标签:java.lang.illegalargumentexception: interface is not visible from class loader
原文地址:http://bronte.blog.51cto.com/2418552/1834862