码迷,mamicode.com
首页 > 移动开发 > 详细

java.lang.IllegalArgumentException: interface UserMapper is not visible from class loader

时间:2016-08-05 21:39:32      阅读:899      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!