У меня есть апплет в песочнице, но это не должно иметь значения.
Апплет состоит из 2 банок. Если я размещаю оба файла в одном домене1, все в порядке. Из-за определенных особых обстоятельств мне нужно разместить jar2 в другом домене 2.
В теге апплета я перечисляю оба файла archive = "jar1.jar, http://domain2.com/jar2.jar".
Сначала, кажется, работает отлично. Обе банки загружены и все работает нормально. Тем не менее, как только я пытаюсь получить доступ к ресурсу (например, к изображению) из INSIDE, возникает проблема.
Как получить ресурсы из моих банок?
Я получаю ресурсы, сначала получая URL-адрес для местоположения ресурса:
общедоступный статический URL getURL (имя строки) {return ResUtils.class.getResource (path);}
Если я размещаю оба jar-файла на domain1, этот метод возвращает URL. При размещении в двух доменах getURL (...) возвращает NULL, что приводит к исключению при извлечении ресурса:
Caused by: java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
Я полагаю, ResUtils.class.getResource использует свой Classloader для возврата URL. По какой-то причине при размещении обоих jar-файлов на двух доменах добавьте вызовы getRessource () и верните NULL.
Итак, мой вопрос:
- Почему getURL возвращает NULL?
Плагин Java предназначен для запрета размещения этих jar-файлов в разных доменах?
Как мне загрузить свои ресурсы, когда я размещаю файлы jar в разных доменах?