чтение файла извне контейнера веб-приложения в Groovy - PullRequest
0 голосов
/ 08 ноября 2011

Привет. Я пытаюсь прочитать XML-файл из-за пределов контейнера веб-приложения. Он прекрасно работает, когда 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-адреса. Я попытался использовать протокол File (File: /// c: /cmls/mtxml.xml), но это не так. Работа. Это из-за того, что модель безопасности «песочницы» Flash не разрешает доступ к ресурсам за пределами домена SWF-файла? поскольку вы можете видеть, что файл swf находится по другому пути .. (этот путь находится в веб-приложении ..)

1 Ответ

1 голос
/ 10 ноября 2011

Правильно, поэтому после нашего разговора в комментариях мы, наконец, выясним причину ваших проблем.

Вы делаете это в Javascript, так что это на стороне клиента. Клиентский компьютер не может видеть произвольный путь на вашем компьютере (можете ли вы представить себе последствия, если это возможно?)

У вас есть 2 варианта:

  1. Поместите XML в ваше веб-приложение (вы знаете, это работает)
  2. Напишите сервер, который будет возвращать xml из произвольной папки при выполнении.

Пойдет с # 1, если у вас нет очень веских причин для # 2

...