Маркеры Google Maps, файлы изображений которых находятся в файле jar - PullRequest
0 голосов
/ 18 января 2012

Мое веб-приложение основано на API Карт Google, и у меня возникают проблемы при попытке получить доступ к изображению, находящемуся в файле jar.

Я хочу сделать две вещи:

  • Показать маркер на карте JavaScript.
  • Показать маркер на статической карте.

В обоих случаях мне нужно указать путь к файлу изображения.Это изображение находится внутри файла jar, который находится в папке / WEB-INF / lib после развертывания веб-приложения на сервере.

Я думал, что будет работать следующая строка: iconMarker.image= "WEB-INF / lib / cimCore.jar! / META-INF / resources / img /" + ilMarker.icon;

Но в браузере клиента отображается следующая ошибка: "NetworkError: 404 No Found- http://ip/cimWeb/WEB-INF/lib/cimCore.jar!/META-INF/resources/img/gsearch.png"

Путь в порядке, поэтому я предполагаю, что доступ осуществляется с помощью '!'характер не правильный путь.

Есть идеи?

1 Ответ

0 голосов
/ 18 января 2012

Вам нужно будет использовать сервлет, который будет загружать байты изображения из загрузчика классов и передавать эти байты в ответ:

  • Используйте MyServlet.class.getResourceAsStream("/META-INF/resources/img/gsearch.png") для получения входного потока на изображении
  • вызов response.setContentType("image/png")
  • получение выходного потока ответа
  • чтение всех байтов из входного потока и запись их в выходной поток

Обратите внимание, что большинство инфраструктур MVC поддерживают отображение шаблона URL-адресов на ресурсы пути к классам или, по крайней мере, реализацию для вас одной части вышеупомянутого алгоритма.

Или вы можете просто извлечь эти изображения изjar-файл и поместите их в дерево доступных веб-приложений ресурсов.

Примечание: WEB-INF по своей природе не доступен извне.Если то, что вы хотели сделать, было возможно, любой мог украсть jar-файлы и конфигурацию любого веб-приложения на основе Java.

...