Почему мои HTTP-ресурсы не загружаются в серии учебников Flex in a Week?
Я работаю над серией видеообучений Adobe "Flex in a Week", и я выполнил упражнение 9, посвященное созданию вызова удаленной службы. До этого момента источник данных и изображения были локальными ресурсами (расположены в src/assets
в моем проекте Flash Builder).
Я получаю доступ к списку комнат следующим образом:
<mx:HTTPService id="rooms" url="assets/roomList.xml"
fault="httpFaultHandler(event)"
result="httpResultHandler(event)"/>
Вот два обработчика результата:
private function httpFaultHandler(event:FaultEvent):void{
Alert.show("There was a problem","Error");
}
private function httpResultHandler(event:ResultEvent):void{
roomList = event.result.rooms.room;
}
Однако, когда я запускаю приложение в контейнере blazeDS, я не получаю комнаты, несмотря на то, что список комнат явно существует в каталоге развертывания после запуска приложения:
$ find . -name roomList.xml
./tomcat/webapps/odt/adobeODT-debug/assets/roomList.xml
Как я могу отладить причину этого сбоя? Процесс развертывания, используемый инструментом Flash Builder, довольно непрозрачен, и экземпляр tomcat не сообщает 404-е из приложений Flex. Есть ли где-то регистрация или что-то, что нужно включить?
1 ответ
Хорошо, для тех, кто найдет эту проблему в будущем; все это происходит из-за отсутствия файла политики сокетов, без которого среда выполнения флэш-памяти молча не сможет загрузить ресурсы с локального хоста. Я закончил тем, что установил крошечный демон политики флеш-памяти и установил launchd для его предоставления в стиле inetd. Вот обсуждение на веб-сайте Adobe: http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security_07.html