首页 > 移动平台 > 详细

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

时间:2016-08-05 21:38:48      阅读:1364      评论:0      收藏:0      [点我收藏+]

记录一次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

原文:http://bronte.blog.51cto.com/2418552/1834862

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!