专治

nuaa123
关注
24552 号成员,2018-07-18 21:16:08 加入
1.7k
个人主页 浏览
627h31m
在线时长
  • Aries - 基于 Go + Vue 的现代化博客系统

    2021-03-21 20:34

    https://e.coding.net/cangmang/aries/aries.git

    下载不了啊 需要验证登录 我不是这个团队中成员

  • 2019.10.16 车况

    2019-10-18 09:43

    跑高速得换个轮胎

  • 一个未来程序媛的 2018 年终总结

    2019-02-19 19:45

    好棒啊 小姐姐 😋

  • Latke 的 Cache 泛型化

    2019-01-28 17:18

    en 👍

  • 今天听说发布了 3 款聊天软件,这些人怎么想的?

    2019-01-15 13:34

    哈哈 周边还没不用微信你的人,不用微信会不会显得另类 😋

  • 来人解救我吧

    2018-12-25 13:16

    我觉得你真是说到点子上了,现在确实很多功能调调 client 就完事了,想要提高确实很难。

  • 写了个简单的 MVC 框架

    2018-12-25 13:12

    果然程序员最大的乐趣就是造轮子啊 😄

  • 原创系统

    2018-12-17 21:16

    回去我发篇帖子试一试 😋

  • 原创系统

    2018-12-17 21:11

    如果发的帖子主要是截的图片,图片里的文字大量摘抄的,这个系统能评出分来嘛?

  • 微信个人账单拉取

    2018-12-14 11:57

    有一种方案(微信版本 6.7.1)可以这样做:

    IMG_2696PNG

    IMG_2697PNG

    IMG_2698PNG

    IMG_2700PNG
    依次进入然后将账单发到邮箱,但是这样太麻烦,有没有更简洁点的?能省掉我手动点击的过程?@all

  • 大家喜欢什么样的免费 API 服务?

    2018-12-12 18:32

    把一个我传进去,返回一个相亲对象就再好不过了 😋

  • FastDFS 的 Java 客户端集成

    2018-12-10 13:47

    😋 谢谢指正哈 ^_^

  • FastDFS 的 Java 客户端集成

    2018-12-10 12:46

    请问这和 nginx 的静态资源代理有啥区别吗?😳

  • Solo 添加阿里云 OSS 服务

    2018-12-09 23:34

    OSS 服务意思是阿里云的对象存储服务吗?

  • 你是否想过像运行桌面应用一样访问黑客派,那么现在满足你这个愿望?

    2018-12-01 17:05

    积分不够,能不能积分改低一点,全给你 50

  • 未来 APP 形态猜想

    2018-11-30 10:34

    一个账户所有设备通行,期待微软

  • 在通过 java 反射调用的方法中,为什么使用 Class.forName() 加载类会出异常?

    2018-09-25 16:37

    以下是我在众多博客中找到的稍微靠谱点的博文,大概原因就是 Tomcat 有自己的类加载器,必须要把第三方 jar 包放在 tomcat 的 lib 文件夹下面。亲测问题解决。

    在这篇博文中 java 动态加载指定的类或者 jar 包反射调用其方法,介绍动态加载指定的类,当时我是拿 URLClassLoader 介绍的,当然可以自定义一个 ClassLoader 重写对应的方法, 不过这个有现成的比自己重写更强大为何不用。

           话不多说,很久不写博客了,时间太紧了,起因还是一个网友私信我,说他反射创建某个对象时涉及其他 jar 中的类就会报 ClassNotFound 异常。

           其实,我也遇到过这个问题,在项目中反射创建一个 service 也是这样的,涉及到第三方的 jar 可能就出这问题,当时我可是纠结了好久,花了好几天时间去解决,请教过诸多大神和网友,不过还是不行,问题沉溺了有一阵子。

           网上很少又提到这个问题的。最近又请教几个有经验的网友说是没有 findClass 的原因,或是类名或者 service 的原因,应该是我描述问题没描述清楚吧。而且关键这个 jar 呀你不反射创建项目中用的好好的,就和昨天晚上私信我的那个网友一样,按 JVM 的双亲委托模型不应该啊,不熟悉的可以看看这译文个深入分析 Java ClassLoader 原理,自定义或者 URLClassLoader 的父加载器是 App ClassLoader,而这个 jar 或者类肯定它会找到并加载或者提前就加载到 JVM 里呢,怎么回事呢。

           其实你如果这样想,我们都犯了一个严重的错误,就是我们不是单纯依托与 JVM,程序结束就 OK 了,可能你测试的时候没问题,已到项目就有这问题。问题在于我们往往是运行在个应用服务器下,一般都是 tomcat 吧,而 tomcat 有自己的一套加载机制,有自己一些加载器,我们忽略这个因素才是导致了问题发生的根本原因。

           我们忽略了 tomcat 内部自定义的类加载器只想到了 JVM 的那几个加载器,tomcat 有个叫 webApp 的加载器它是先加载 WEB-INF/classes 后在加载 WEB-INF/lib,但它的父加载器是它的 common 加载器,comon 的父加载器是 system 加载器(和 JVM 的应用程序加载器功能差不多,不过指定了其他 tomcat 目录下的加载,大家可以看看官网上的英文文档),但是源码中这个加载器是 URLClassLoader 的子类,而 URLClassLoader 默认父加载 tomcat 下是它的 system 加载器这么设计和 tomcat 的配置有关,默认为无为 false,会直接委托给 tomcat 的 system 加载器加载 system 委托最顶层的 Bootstrap 加载器(差不多是 JVM 里起始加载器和扩展加载器的合并),但不管怎么样,项目在 tomcat 下自定义的或者 URLClassLoader 加载默认父加载器都不会是 tomcat 的 webApp 加载器而是 system 加载器,或者自定义的加载器或 URLClassLoader 和 tomcat 的 webApp 加载器没有上下关系,所以动态创建类时设计到其他类时肯定会报 CNF 异常。

          解决思路就是先获取当前类的 Class,然后获取当前类的加载器,在自定义的加载器或者 URLClassLoader 加载器创建时指定为它们的父加载器,这样问题就会游刃而解了,可能平常我们测试写个简单的例子没遇到这个问题,因为我们那时的 URLClassLoader 或者自定义的加载器的父加载器都是 JVM 的第三次加载器即应用程序加载,它是专门加载 classpath 下边的或者指定的类或者 jar 的,依照双亲委托模型,肯定会找到引入路径的那个类或者 jar 的。

         或者我们使用 Class.forName()的方式来动态加载指定的类,就不会存在这个问题,因为这种方式一方面是能初始化类的静态东西,再就是重要一点,就是采用的加载当前所在类的加载器来加载你指定的类,这样你在 tomcat 下那就是它的 webApp 加载器啊,肯定不再出现这个问题,可能直接就从缓存里找到了。

  • Solo 从设计到实现

    2018-09-23 18:18

    期待更新。。。

  • 添加网页播放器 + 全站 pjax

    2018-09-15 12:01

    在你的博客注册都要跳转到
    imagepng
    吗?

  • Java 开源博客 Solo 2.9.2 发布,看板娘来了

    2018-07-26 22:43

    我也以为是老板娘来了😋

  • qq 第三方登录

    2018-07-24 18:47

    好吧,