在groovy中从外部webapp容器中读取文件

时间:2011-11-08 19:47:16

标签: groovy web-applications

您好我正在尝试从Web应用程序容器外部读取xml文件,当xml文件位于Web应用程序容器内的目录中时它工作正常但当我尝试从目录位置访问它时它不起作用外部网络应用程序。 我在尝试读取XML文件之前,实际上是在磁盘中的任何适当位置编写XML文件。 我尝试了像c:/xmls/my1.xml,/myprojhome/xmls/my1.xml这样的路径,但只有/myprjhome/js/my1.xml才有效,因为js目录在web-ap中。

我只是想通过硬编码代码中的路径来访问,就像 map.setDataURL( “/ myprjhome / JS / my1.xml”); - 这有效,但其他人不,他们给数据错误 - 无法找到文件

我正在研究的Windows系统,是否需要以其他方式设置地图的URL? (例如,使用file.seperator)

我正在使用Fusion Maps - 一个基于Flash的地图图表工具,它接受xml格式的数据,因此我导入了一个javascript文件,它是FusionMaps.js,它具有setDataURL等所有功能。我在javascript中执行此操作以呈现图表:

          <script> 
var  map = new FusionMaps("/gra/swf/Maps/FCMap_World.swf", "Map1Id", "750", "400", "0", "0"); 
     map.SetDataURL(URL of the dataxml);
         </script>

图表仅在URL有效时显示地图,否则显示无效的URL错误,我尝试使用文件协议(文件:/// c:/cmls/mtxml.xml)但它没有工作。是不是因为Flash沙箱安全模型不允许访问swf文件域外的资源?因为你可以看到swf文件位于其他路径中..(该路径位于web-app中..)

1 个答案:

答案 0 :(得分:1)

是的,所以在我们在评论中的对话之后,我们终于找到了问题的原因。

你在Javascript中这样做,所以它在客户端。客户端计算机无法在您的计算机上看到任意路径(如果可能,您能想象其中的含义吗?)

您有两个选择:

  1. 将xml放入您的webapp(您知道这有效)
  2. 编写一个服务器,在执行时从任意文件夹返回xml。
  3. 除非你有非常强烈的理由#2

    ,否则会选择#1