处理javax.imageio.IIOException 时:无法创建 ImageInputStream!由于缺少FileImageInputStreamSpi提供程序而调用ImageIO.read(File file)后,我认识到我的 webapp 中可用的ImageIO服务提供程序取决于 Geoserver ( http://geoserver.org ) webapp 是否在同一个 Tomcat 中运行网络容器与否:
只有我的 webapp 运行:
从 RandomAccessFile 实例化 FileImageInputStream 的服务提供者
从 File 实例化 FileImageInputStream 的服务提供者
从 InputStream 实例化 FileCacheImageInputStream 或 MemoryCacheImageInputStream 的服务提供者
我的 webapp 沿着 Geoserver 2.15.0 webapp 运行:
NIO 通道 ImageInputStream
包装 FileImageInputStream 的服务提供者
帮助连接到字符串指向的对象的服务提供者
帮助连接到 URL 指向的对象的服务提供者
从 RandomAccessFile 实例化 FileImageInputStream 的服务提供者
我的网络应用程序中的代码:
IIORegistry reg = IIORegistry.getDefaultInstance();
Iterator<ImageInputStreamSpi> it = reg.getServiceProviders(ImageInputStreamSpi.class, true);
while (it.hasNext()) {
ImageInputStreamSpi spi = it.next();
System.out.println(spi.getDescription(Locale.GERMAN));
}
我正在使用 Tomcat 9.0.16 webapp 和 OpenJDK 11。
我想知道为什么这两个 webapps 都可能以这种方式干扰 - 这实际上不是一个安全问题吗?
感谢您的一般性澄清。
慕的地8271018
相关分类