Hi Kaleb,

 

Cool! Great stuff.

 

My guess is that the delay is machine dependent, but not necessarily network dependent. I do believe that the LOAD event does indicate that the WSDL actually has loaded successfully. Flex will not need any more access to the network in order to initialize the web service.

 

Anyway, it’s a little bit sloppy that the LOAD event does not indicate that the webservice is actually ready for use. I consider this a bug if you ask me. So, maybe this is something we can put on the wish list???

 

Thanks,

Franck

 


From: flexcoders@yahoogroups.com [mailto:flexcoders@yahoogroups.com] On Behalf Of kaleb_pederson
Sent: Tuesday, August 08, 2006 7:18 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: WSDLError:Element not resolvable => LoadEvent doesn't imply service ready

 

Frank,

I did a bit more research into this. I don't need nearly a second
for the WebService to be ready after the load event. I just put the
whole process in a loop to see what kind of delay I need to make it
work on my box (with the service running on my box). Unfortunately,
the delay is probably machine and network dependent and, therefore,
would have to be different on other machines.

My results were:

res[delay in ms] = # successes (out of 100)
res[1] = 0
res[2] = 5 ...
res[10] = 13 ...
res[15] = 42 ...
res[20] = 53 ...
res[30] = 77 ...
res[38] = 100
(and the rest were 100 also)

Somebody else had what may have been a similar problem and he just
re-fired the request
(http://groups.yahoo.com/group/flexcoders/message/46401). That's
certainly not an elegant solution....

So, I still don't have a solution, just a work-around. Does anybody
else have any ideas or suggestions?

Thanks.

--Kaleb

--- In [EMAIL PROTECTED]ups.com, "Franck de Bruijn"
<franck.de.bruijn@...> wrote:
>
> Hi Kaleb,
>
>
>
> I always expected the web service to be ready after the load event
> completed. Probably it's a matter of milliseconds. I never
encountered your
> problem before, since I don't automatically call web services
after loading.
> So far, my webservices are only invoked behind a button.
>
>
>
> But sooner or later I probably will, since I will want to push
master data
> from the server into the application (like a country table or
something like
> that) directly after startup.
>
>
>
> So, this does not sound good ...
>
>
>
> I expect that your workaround is the only solution.
>
>
>
> Cheers,
>
> Franck
>
>
>
>
>
>
>
> _____
>
> From: [EMAIL PROTECTED]ups.com
[mailto:[EMAIL PROTECTED]ups.com] On
> Behalf Of kaleb_pederson
> Sent: Tuesday, August 08, 2006 1:38 AM
> To: [EMAIL PROTECTED]ups.com
> Subject: [flexcoders] WSDLError:Element not resolvable =>
LoadEvent doesn't
> imply service ready
>
>
>
> I have been struggling with the "Element not resolvable" error
today
> in some of my unit tests using FlexUnit. As far as I can tell, the
> LoadEvent doesn't imply that the service is ready. If I put a
timer
> in and wait 1 second after the load event to make my service call,
> everything works correctly. If I don't wait 1 second, however,
then
> I receive the "Element not resolvable" error. This appears to be a
> bug in the WebService class.
>
> Here's my sample code:
>
> import mx.rpc.soap.WebService;
> import flash.events.Event;
> import mx.rpc.events.ResultEvent;
> import mx.rpc.soap.LoadEvent;
> import flash.utils.Timer;
> import flash.events.TimerEvent;
>
> public class SoapDemoTest {
>
> public function testListVocabularies():void {
> trace('testListVocabularies');
> ws = new mx.rpc.soap.WebService();
> ws.addEventListener(LoadEvent.LOAD, onLoadCompleted);
> ws.loadWSDL("http://192.168.
<http://192.168.1.1:8080/myserv/myserv?wsdl>
> 1.1:8080/myserv/myserv?wsdl");
> }
>
> private function onLoadCompleted(evt:LoadEvent):void {
> trace('onLoadCompleted');
>
> // if I just call ws.listVocabularies, I receive the
> // Cannot Resolve Element error.
> ws.addEventListener(ResultEvent.RESULT,onResultReceived);
> ws.listVocabularies(5,true);
>
> /*
> // if I use this timer instead of the above, everything works
> var timer:Timer = new Timer(1000, 1);
> timer.addEventListener(
> TimerEvent.TIMER_COMPLETE,
> onTimerComplete
> );
> timer.start();
> */
> }
>
> private function onTimerComplete(evt:TimerEvent):void {
> trace("onTimerComplete");
> ws.addEventListener(ResultEvent.RESULT,onResultReceived);
> ws.listVocabularies(5,true);
> }
>
> private function onResultReceived(evt:ResultEvent):void {
> trace("onResultReceived");
> trace("result: " + evt.result.toString());
> }
>
> }
>
> To test, simply fire testListVocabularies() in a CreationComplete
> event handler.
>
> Can anyone else confirm this? By the messages, it sounds like the
> exact same thing that a number of people are running into.
>
> Thanks for the help.
>
> --Kaleb
>

__._,_.___

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com





SPONSORED LINKS
Web site design development Computer software development Software design and development
Macromedia flex Software development best practice


YAHOO! GROUPS LINKS




__,_._,___

Reply via email to