您的位置:首页 > 移动开发

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

2016-08-05 20:05 686 查看
记录一次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,能帮到你!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java lang IllegalArgumen
相关文章推荐