2023-01-20 293
这是问题的简化版本:
SomeClass c = (SomeClass) obj.getSomeClassParent()
并非总是如此,但有时会触发异常
org.somepackage.SomeClass can't be cast to org.somepackage.SomeClass
这怎么可能?我想这与Jai Imageio是本地Lib的事实有关,但是继电器怎么会发生?我可能错过了什么,但是什么?
I'm using JAI imageio version 1.1
dcm4che 2.0.21 DICOM lib
这是原始代码
ImageInputStream iis = ImageIO.createImageInputStream(src);
Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM");
ImageReader reader = iter.next();
DicomImageReadParam param = (DicomImageReadParam) reader.getDefaultReadParam();
和原始异常
org.dcm4che2.imageio.plugins.dcm.DicomImageReadParam can't be cast to
org.dcm4che2.imageio.plugins.dcm.DicomImageReadParam
异常图像image Image http://img215.imagshack.us/img215/exception http:/img215/excectionion .jpg
我认为如果
所以你有:
或换句话说 – 不是同一类 – 因此,类施放异常.
可能的重复: – 它也有一些很好的建议.
我猜想您由于classloaders和本机库之间的不匹配而有问题.本机库已加载并与ClassLoader关联,但是,程序只能真正加载本机库的一个实例.因此,如果将本机LIB加载到ClassLoader A中,并且输出的类将与ClassLoader A相关通过classLoaderA进行了类.因此,您要么重新部署了WebApp,要么在同一Web服务器中有2个WebApps使用同一本机库.
如果可能的话,您应该尝试将本机库放在Web服务器的基类路径中,以便由Base ClassLoader加载它,从而由任何WebApp使用.如果您不能这样做,而问题只是重新部署问题,那么您可能需要不放弃并等待一点(从理论上讲,当与与之关联的class Loader的GCED,GCED,GCED,,将本机LIB卸载但是,当然,这可能需要花费未知的时间).
奇怪的是,您是否尝试将其施放到它扩展的对象上,不确定它是否具有您需要的功能,但可能值得尝试查看它是否仍然引发异常.
以上所述是小编给大家介绍的Java铸造/classloader问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/25995.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态