При работе с javax.imageio.IIOException: не удается создать ImageInputStream! после вызова ImageIO.read (файл файла) из-за отсутствия FileImageInputStreamSpi *Поставщик 1006 * Я обнаружил, что поставщики услуг ImageIO , доступные в моем веб-приложении, зависят от того, работает ли веб-приложение Geoserver (http://geoserver.org) в том же веб-контейнере Tomcat):
Работает только мое веб-приложение:
- Поставщик услуг, который создает FileImageInputStream из RandomAccessFile
- Поставщик услуг, которыйсоздает экземпляр FileImageInputStream из File
- поставщика услуг, который создает экземпляр FileCacheImageInputStream или MemoryCacheImageInputStream из InputStream
Мое веб-приложение, работающее вдоль Geoserver 2.15.0 webapp:
- NIO Channel ImageInputStream
- Поставщик услуг, который упаковываетFileImageInputStream
- Поставщик услуг, который помогает подключаться к объекту, указанному строкой
- Поставщик услуг, который помогает подключаться к объекту, указанному URL-адресом
- Поставщик услуг, который создает экземпляр FileImageInputStream из файла RandomAccessFile
Код в моем веб-приложении:
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.
Интересно, почему оба веб-приложения могут мешать таким образом - разве это не проблема безопасности?
Спасибо за некоторые общие разъяснения.