Docroot Glassfish и недостижимый кроссдомен

Я пытаюсь получить доступ к веб-сервису из Flex. Веб-сервис развернут на сервере приложений Glassfish 3.1. Теперь Flex нужен файл crossdomain.xml в корне (верхний уровень) сервера.

Вот проблема: я искал и обнаружил, что файл междоменного доступа должен находиться внутри каталога docroot (c:\Glassfish3\Glassfish\domains\domain1\docroot). Это именно то место, где я его указал, и все же я получаю 404, когда пытаюсь до него достучаться.

Я также пытался поместить его в приложения, но это не сработало.

Что я должен делать?

Спасибо, Идо


person Ido Barash    schedule 21.08.2012    source источник
comment
это кажется странным. Если вы наберете localhost:8080, покажет ли он вам страницу по умолчанию для Glassfish? (Я предполагаю, что ваш http-порт 8080)   -  person Alf    schedule 22.08.2012
comment
Да, и если я попытаюсь получить доступ к localhost:8080/crossdomain.xml, я получу файл. Но мне нужно, чтобы этот файл был доступен через IP-адрес.   -  person Ido Barash    schedule 22.08.2012
comment
Если вы попытаетесь использовать h ttp://x.y.z.w, вы получите страницу Glassfish по умолчанию? Все ваши виртуальные серверы имеют один и тот же корневой каталог документов, или для некоторых из них вы установили разные корневые каталоги документов?   -  person Alf    schedule 22.08.2012
comment
Спасибо за помощь. Я ничего не делал. Я только что установил стеклянную рыбу и развернул простую WAR через консоль администратора - ничего больше. Мне нужно получить доступ к сервису с IP-адресом: h ttp://10.0.0.7/crossdomain.xml.   -  person Ido Barash    schedule 22.08.2012
comment
Насколько я вижу, у вас есть стеклянная рыба, которая слушает 8080, но вы хотите получить к ней доступ через порт 80. Правильно ли вы настроили брандмауэр для перенаправления 80 на 8080?   -  person Alf    schedule 22.08.2012
comment
Прошу прощения, неправильно написал. Я хочу получить к нему доступ следующим образом: h ttp://10.0.0.7:8080/crossdomain.xml. Это не работает.   -  person Ido Barash    schedule 22.08.2012
comment
Если вы наберете h ttp://10.0.0.7:8080, какую страницу вы увидите? Вы получаете ошибку 404?   -  person Alf    schedule 23.08.2012


Ответы (1)


Хорошо, я нашел ответ, хотя я не уверен, что это рекомендуется.

Внутри консоли администратора Glassfish в разделе «Конфигурации» -> «Конфигурация сервера» -> «Конфигурация сети» -> «http-listener-1».

Я изменил адрес с «0.0.0.0» на фактический IP-адрес сервера.

Теперь это работает нормально, и я получаю доступ к crossdomain.xml, но, как я уже сказал, я не уверен, что это действие рекомендуется и не приведет к другим ошибкам.

Спасибо.

person Ido Barash    schedule 23.08.2012
comment
Таким образом, вы не сможете получить доступ к crossdomain.xml с localhost:8080/crossdomain.xml или любого другого другой адрес, указывающий на вашу машину. Попробуй - person Alf; 23.08.2012
comment
На самом деле, это просто сервер, поэтому я не возражаю, если локальный хост недоступен - мне это подойдет. Но все же, есть ли способ решить эту проблему, не делая локальный хост недоступным? - person Ido Barash; 24.08.2012
comment
Думаю дело в другом. Я использую стеклянную рыбу на общедоступном сервере, и без специальной настройки я могу видеть файлы в doocroot. С другой стороны, listener=0.0.0.0 управляет всеми входящими запросами, даже те, которые направляются на 10.0.0.7, поэтому я не понимаю, в чем проблема. Извините. Если вы найдете решение в будущем, дайте нам знать - person Alf; 24.08.2012