Ошибка веб-службы Flex: ошибка HTTP-запроса - PullRequest
0 голосов
/ 17 февраля 2009

Я использую Flex 3 и компонент WebService. Я начал получать следующую ошибку

 HTTP request error

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

 <mx:WebService
    useProxy="false"
    id= "myService">
         <mx:operation name="getName" resultFormat="object"
        result="getNameResultHandler(event)"
        fault="faultHandler(event)"/>
 </mx:WebService>

я установил wsdl im мой метод init, который я прочитал как flashvar. ЛЮБЫЕ идеи?

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

var id:Strig = Application.application.parameters.id;
mysERVICE.getname(id);

хорошо, я вижу следующее, когда выдается ошибка

[RPC Fault faultString="HTTP request error" faultCode="Server.Error.Request" faultDetail="Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: http://localhost:9081/app/services/RoomLookup"]. URL: http://localhost:9081/`app/services/RoomLookup`"]

URL, который он показывает, отличается от wsdlUrl, которую я предоставляю в качестве параметра

app/services/RoomLookup

гибко добавляет локальный хост или это может быть что-то, хранящееся в кэше


Я уже зарегистрировал это и получил «Http Request error»

Ответы [ 3 ]

4 голосов
/ 17 февраля 2009

Большинство платформ SOAP и RPC устанавливают код состояния HTTP ответа об ошибке равным 500. Flash Player не может обработать содержимое HTTP-ответа с кодом состояния 500, поэтому с ним может быть сложно работать. К сожалению, в проигрывателе нет способа обойти эту проблему, поэтому наиболее распространенным подходом, по-видимому, является обеспечение того, чтобы сервер не устанавливал статус HTTP-ответов об ошибках на 500 для запросов, пользовательским агентом которых является Flash. Игрок.

2 голосов
/ 17 февраля 2009

Добавьте следующее к faultHandler():

trace(event.fault.faultString, "Error");
if (event.fault is SOAPFault) {
    var fault:SOAPFault=event.fault as SOAPFault;
    var faultElement:XML=fault.element;
    // ...
}    

Это даст тебе кое-что, чтобы начать собирать.

1 голос
/ 17 февраля 2009

Используйте http-отладчик, такой как Fiddler , чтобы узнать точный запрос / ответ. Flex не раскрывает подробности мыльных ошибок, или, по крайней мере, не использовал их. См. здесь , например.

...