Flex 3: HTTPService не работает с одним файлом. Кто-нибудь видит что-то не так с кодом?

Итак, у меня есть три вызова HTTPService для трех разных файлов XML:

<mx:HTTPService id="projectsHttp" url="projects.xml" resultFormat="e4x" makeObjectsBindable="true" result="countProjects(event)" />
<mx:HTTPService id="studentsHttp" url="students.xml" resultFormat="e4x" makeObjectsBindable="true" result="createStudentsCollection(event)" />
<mx:HTTPService id="dprepHttp" url="directorsPrep.xml" resultFormat="e4x" makeObjectsBindable="true" result="createPhase(event)" />

Первые два работают отлично ... но последний просто не работает. Для целей тестирования функция createPhase выглядит так:

public function createPhase(e:ResultEvent):void
{
    Alert.show("Testing");
}

Также файл directorsPrep.xml выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<directorspreps>
    <directorsprep>
        <prepid>1</prepid>
        <title>dir. prep. 1</title>
        <workingtitle>dp1 WT</workingtitle>
        <startdate>7/7/2011</startdate>
        <numdays>2</numdays>
        <positions>
            <role>1D</role>
            <role>2D</role>
            <role>1C</role>
        </positions>
    </directorsprep>
    <directorsprep>
        <prepid>2</prepid>
        <title>dir. prep. 2</title>
        <workingtitle>dp2 WT</workingtitle>
        <startdate>7/10/2011</startdate>
        <numdays>3</numdays>
        <positions>
            <role>1D</role>
            <role>2D</role>
            <role>1C</role>
            <role>GE</role>
        </positions>
    </directorsprep>
</directorspreps>

Кто-нибудь видел что-нибудь, что могло бы помешать загрузке файла directorsPrep.xml?

РЕДАКТИРОВАТЬ: Я идиот ... Не делал .send (); :( Простите за расточитель времени


person Brds    schedule 06.07.2011    source источник
comment
Как вызывается HTTPService? Что происходит при отладке? Есть ошибки?   -  person J_A_X    schedule 06.07.2011
comment
вызовы HTTPService идут сразу после моего ‹/ mx: Script›, и единственные предупреждения, которые я получаю во время отладки, связаны с другой частью приложения (вызываемой после файла directorsprep.xml), которая отлично работает. Кроме того, все предупреждения, которые я получаю, не могут быть связаны с предупреждениями.   -  person Brds    schedule 06.07.2011
comment
Сложно отлаживать Не работает. Вам нужно расширить это. Вы получаете сообщение об ошибке во время выполнения? Ошибка времени компиляции? Или ошибки нет? Есть проблемы с возвратом данных? Что возвращается? Есть ли у вас точка останова в обработчике результатов и проверяли ли вы данные? Использовали ли вы такой инструмент, как Flash Builder Network Monitor, для просмотра пакетов, отправляемых туда и обратно?   -  person JeffryHouser    schedule 06.07.2011
comment
В остальном приложение загружается нормально. При сохранении приложения никаких ошибок или предупреждений не выводится. вызовы HTTPService выполняются прямо под моей частью ‹mx: Script› mxml-файла. После вызова тегов HTTPService появляются несколько холстов макета, затем вызываются 2 повторителя (я знаю - я знаю, что повторители - это дьявол ... но уже слишком поздно в проекте менять его сейчас). Предполагается, что информация в файле directorsprep.xml будет обрабатываться первым повторителем, а информация из projectsHttp - вторым. Второй репитер работает нормально и отлично работает.   -  person Brds    schedule 06.07.2011
comment
Разве функция createPhase не должна выдавать предупреждение, как только HTTPService загружается?   -  person Brds    schedule 06.07.2011
comment
Может я это пропустил, а вы добавили обработчик ошибок? Если нет, сделайте это ... посмотрите, в чем проблема. Обработчик результата не будет ничего делать в случае ошибки.   -  person Jonathan Rowny    schedule 06.07.2011
comment
@Jonathan Rowny - Я добавил fault = showError (event) в рассматриваемый HTTPService. Я сделал простой Alert.show (БЫЛА ОШИБКА); в функции showError ... все еще не всплывает предупреждение :(   -  person Brds    schedule 06.07.2011
comment
Можем ли мы увидеть больше кода? Я не вижу ничего из того, что вы разместили, что не должно работать. Нам нужно увидеть mx: Script, особенно там, где вы вызываете эти службы.   -  person Jonathan Rowny    schedule 06.07.2011
comment
Вы где-нибудь вызываете функцию send ()? Я также проголосовал за закрытие, потому что вы просто не даете нам то, что нам нужно, и не помогаете себе в этом процессе.   -  person J_A_X    schedule 06.07.2011
comment
@J_A_X - вы поняли ... забыли отправить :(   -  person Brds    schedule 06.07.2011
comment
ха-ха, все нормально, все делают ошибки. Для справки в будущем, было бы намного быстрее, если бы вы просто разместили свой код. Просто примите ответ Брайана :)   -  person J_A_X    schedule 06.07.2011


Ответы (1)


Трудно сказать наверняка. Я создал небольшой проект во Flex3, который включает ваш XML-файл, и он отлично сработал для меня. Вы должны добавить fault обработчик, чтобы знать, почему он не работает. Поместите точку останова в этот обработчик, если вам нужно что-то изучить. Кроме того, убедитесь, что вы вызываете send() для загрузки этого XML-файла. Вот пример того, что у меня работало (включая обработчик ошибок).

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600">

    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.rpc.events.FaultEvent;
            import mx.rpc.events.ResultEvent;

            public function createPhase(e:ResultEvent):void
            {
                Alert.show(e.result.toString());
            }

            protected function createPhaseFailed(e:FaultEvent):void
            {
                Alert.show(e.message.toString());
            }

        ]]>
    </mx:Script>

    <mx:HTTPService id="dprepHttp" url="directorsPrep.xml" resultFormat="e4x" makeObjectsBindable="true" 
                    result="createPhase(event)" fault="createPhaseFailed(event)" /> 

    <mx:initialize>
        <![CDATA[
            dprepHttp.send();
        ]]>
    </mx:initialize>

</mx:Application>

Удачи!

person Brian Genisio    schedule 06.07.2011