Как получить экземпляр javax.imageio.spi.IIORegistry с правильной областью действия

У нас есть несколько веб-приложений, развернутых на сервере приложений WebSphere, где оба приложения используют ImageIO стандартной Java, но одно использует дополнительную библиотеку, чтобы добавить больше читателей / писателей.

Вопрос сейчас, оба приложения используют IIORegistry.getDefaultInstance() чтобы получить экземпляр реестра службы, и оба приложения, кажется, получают один и тот же экземпляр. Внутренне это связано с AppContext.getAppContext() возвращая тот же AWT AppContext. Есть ли какой-нибудь правильный способ иметь несколько приложений WebSphere, использующих ImageIO Java, без необходимости заботиться об обоих приложениях, использующих одни и те же библиотеки? Нужно ли вручную создавать awt AppContext для моих приложений WebSphere?

1 ответ

Я считаю, что концепция контекста приложения (та, которая используется в IIORegistry Класс, не путать с контекстом веб-приложения) изначально предназначался для апплетов (т. е. нескольких апплетов, выполняющихся в одной JVM в браузере). Для веб-приложений это также имело бы смысл, но я не думаю, что это работает таким образом. Кроме того, я не думаю, что есть какие-либо общедоступные классы API или методы, связанные с созданием или поддержанием контекстов приложения (это все в sun.awt.* пакеты), поэтому создание контекстов вручную не рекомендуется.

Я сделал слушатель веб-контекста, который решит некоторые проблемы с использованием ImageIO в веб-приложениях, т.е. регистрация и отмена регистрации "локальных" плагинов веб-приложения, когда веб-приложение загружается / выгружается (обрабатывает как обнаружение, так и удаление "устаревших" плагинов). К сожалению, это не будет скрыто в плагинах веб-приложений от других веб-приложений, если это ваше намерение (трудно сказать по вопросу).

Имея AppContext Для каждого веб-приложения, вероятно, будет более понятный подход, но, как уже упоминалось, отсутствие общедоступного API и отсутствие "стандартного" способа сделать это делает такое решение непереносимым и, следовательно, нежелательным.

Другие вопросы по тегам