Google Maps Markers哪些图像文件位于jar文件中

时间:2012-01-18 12:47:54

标签: google-maps

我的网络应用程序基于Google Maps API,我在尝试访问jar文件中的图像时遇到问题。

我希望能够做两件事:

  • 在javascript地图中显示标记。
  • 在静态地图中显示标记。

在这两种情况下,我都需要提供图像文件的路径。此图像位于jar文件中,该文件在Web服务器中部署Web应用程序后位于/ 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 :(得分:0)

您必须使用一个servlet,它将从类加载器加载图像字节,并将这些字节流式传输到响应中:

  • 使用MyServlet.class.getResourceAsStream("/META-INF/resources/img/gsearch.png")在图片上获取输入流
  • 致电response.setContentType("image/png")
  • 获取响应输出流
  • 读取输入流中的所有字节并将其写入输出流

请注意,大多数MVC框架都支持将URL模式映射到类路径资源,或者至少为您实现上述算法的一部分。

或者您可以从jar文件中提取这些图像,并将它们放在webapp的外部可访问资源树中。

附注:根据设计,WEB-INF无法从外部访问。如果你想做的事情是可能的,那么任何人都可以窃取任何基于Java的webapp的jar文件和配置。