网上很多例子了,在做web时候报错
java.util.NoSuchElementException
at javax.imageio.spi.FilterIterator.next(Unknown Source)
环境:
编译使用JDK:jdk_1.6.0_30 运行时使用JDK:jdk_1.7.0_11
web容器:tomcat-6.0.32
经过断点测试发现(imageFormat未图片格式)
Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName(imageFormat);
迭代器中readers出现next为空(或iter中zerolist为空)。想了下应该是某些类没有加载,开始使用class.forName("xx")分别实验。后来经查找在迭代器之前先进行手动注册
IIORegistry registry = IIORegistry.getDefaultInstance(); registry.registerServiceProvider(new com.sun.media.imageioimpl.plugins.tiff.TIFFImageWriterSpi()); registry.registerServiceProvider(new com.sun.media.imageioimpl.plugins.tiff.TIFFImageReaderSpi());
之后运行通过。