код веб-службы в ActionScript

Я вызываю класс ActionScript из моего основного файла mxml. класс actionscript отвечает за вызов веб-службы и обработку ответа, однако у меня возникают проблемы, и я продолжаю получать следующую ошибку; (Я новичок в гибкости, кстати)

Error #1009: Cannot access a property or method of a null object reference.

мой код выглядит следующим образом;

    public function getSites(argWsdl:String):void{
    ws = new WebService();
        ws.loadWSDL(argWsdl);
    ws.getSites.addEventListener(ResultEvent.RESULT,echoResultHandler); 
    ws.getSites();
}

    public function echoResultHandler(event:ResultEvent):void {
        var siteField:ArrayCollection = event.result as ArrayCollection;
        Application.application.setSiteField(siteField);
    }

когда я запускаю отладчик, код никогда не достигает обработчика результатов, и я вижу ошибку # 1009 в списке переменных.

Любые идеи?


person cdugga    schedule 04.02.2009    source источник


Ответы (3)


похоже, вы отсортировали его, но просто чтобы добавить дополнительную информацию на случай, если кто-то еще подойдет к этому вопросу, вы обычно видите эту ошибку, когда пытаетесь использовать что-то, что еще не было создано. Часто вы будете видеть это при попытке получить доступ к компонентам пользовательского интерфейса, которые еще не были созданы (для подобных вещей полезно полагаться на событие creationComplete), но в этом случае похоже, что вы уже использовали веб-сервис раньше. он полностью готов (wsdl еще не загружен).

Просто чтобы вы знали, вы также можете определить свои веб-службы в mxml (mx: webservice) и указать там wsdl, или вы также можете загрузить wsdl позже из файла конфигурации, просто указав идентификатор.

person Ryan Guill    schedule 04.02.2009

разобрался,

мне нужно было создать loadEvent и loadhandler. Как только loadWsdl вызывается, loadhandler указывает laodHandler для использования, внутри loadHandler я вызываю имя метода, как показано в wsdl

person cdugga    schedule 04.02.2009

спасибо Райан,

Основная причина, по которой я использую отдельный класс ActionScript, заключается в том, что я могу повторно использовать одни и те же вызовы веб-сервисов в моих компонентах без необходимости повторного ввода одного и того же кода. Я не мог придумать лучшего способа сделать это - возможно, можно было бы сделать то же самое с пользовательским компонентом

person cdugga    schedule 04.02.2009
comment
нет, это звучит как отличный способ сделать это. Как вы уже заметили, убедитесь, что вы проверили и убедитесь, что все создано и готово к работе, прежде чем совершать звонок и тому подобное. вы также можете загрузить свой wsdl в конструктор отдельного класса. - person Ryan Guill; 04.02.2009