Very cool Seth! Thanks for the heads up and the help
in resolving
the issue.
--Kaleb
--- In [EMAIL PROTECTED]ups.com,
"Seth Hodgson" <[EMAIL PROTECTED].>
wrote:
>
> Hi Kaleb,
>
>
>
> Thanks for providing your WSDL/XSD/service code. We've identified
and
> fixed the issue internally. The problem was that WSDL parsing
dispatches
> the load event after the WSDL is loaded and parsed, but without
properly
> waiting for schema imports to be fetched over the network and
parsed.
> The simplest workaround is to avoid schema imports :-) If that
isn't an
> option, catch the 'Element not resolvable' error and retry your
call
> using a Timer on a short delay.
>
>
>
> Thanks again for your help closing out this bug,
>
> Seth
>
>
>
> ________________________________
>
> From: [EMAIL PROTECTED]ups.com
[mailto:[EMAIL PROTECTED]ups.com]
On
> Behalf Of kaleb_pederson
> Sent: Tuesday, August 15, 2006 12:28 PM
> To: [EMAIL PROTECTED]ups.com
> Subject: [flexcoders] Re: WSDLError:Element not resolvable =>
LoadEvent
> doesn't imply service ready
>
>
>
> Hello all,
>
> I have provided Bill at Adobe with a copy of the WSDL and XSD for
> the test service. I haven't received a response but assume that he
> received them. The WSDL and XSD need not be large. For testing
> purposes, I created a service that had only a single function that
I
> was able to use to reproduce this problem. I also offered to
> provide that sample service to them.
>
> I'll take a look at www.xmethods.net and see if the error
reproduces
> on some of their publically available services. I'll post back
once
> I know whether or not it reproduces.
>
> Thanks.
>
> --Kaleb
>
> --- In [EMAIL PROTECTED]ups.com
<mailto:flexcoders%40yahoogroups.com>
> , "Franck de Bruijn"
> <franck.de.bruijn@> wrote:
> >
> > Hi Bill,
> >
> >
> >
> > Great to see that someone from Adobe is looking into this. I
hope
> Kaleb is
> > reading this post and can provide you with the WSDL. I
personally
> did not
> > encounter this error myself, but it looks thoroughly
investigated
> by Kaleb.
> >
> >
> >
> > If Kaleb is not responding, it's maybe an idea to create a huge
> WSDL, then
> > load it and immediately after the LoadEvent try to call an
> operation. It
> > should fail. If you need help with creating this WSDL I can try.
> Let me
> > know.
> >
> >
> >
> > Cheers,
> >
> > Franck
> >
> >
> >
> > _____
> >
> > From: [EMAIL PROTECTED]ups.com
<mailto:flexcoders%40yahoogroups.com>
>
> [mailto:[EMAIL PROTECTED]ups.com
<mailto:flexcoders%40yahoogroups.com>
> ] On
> > Behalf Of Bill Sahlas
> > Sent: Wednesday, August 09, 2006 2:48 PM
> > To: [EMAIL PROTECTED]ups.com
<mailto:flexcoders%40yahoogroups.com>
> > Subject: RE: [flexcoders] Re: WSDLError:Element not resolvable
=>
> LoadEvent
> > doesn't imply service ready
> >
> >
> >
> > Howdy,
> >
> >
> >
> > I'd like to reproduce this internally here in the FDS QA lab
using
> some of
> > your examples. Can someone on this list forward me a link to a
> WSDL that is
> > publicly accessible with sample code to execute?
> >
> >
> >
> > Thanks, Bill
> >
> >
> >
> > FDS QA - Adobe Systems Inc.
> >
> >
> >
> > _____
> >
> > From: [EMAIL PROTECTED]ups.com
<mailto:flexcoders%40yahoogroups.com>
>
> [mailto:[EMAIL PROTECTED]ups.com
<mailto:flexcoders%40yahoogroups.com>
> ] On
> > Behalf Of Franck de Bruijn
> > Sent: Tuesday, August 08, 2006 1:59 PM
> > To: [EMAIL PROTECTED]ups.com
<mailto:flexcoders%40yahoogroups.com>
> > Subject: RE: [flexcoders] Re: WSDLError:Element not resolvable
=>
> LoadEvent
> > doesn't imply service ready
> >
> >
> >
> > 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: [EMAIL PROTECTED]ups.com
<mailto:flexcoders%40yahoogroups.com>
>
> [mailto:[EMAIL PROTECTED]ups.com
<mailto:flexcoders%40yahoogroups.com>
> ] On
> > Behalf Of kaleb_pederson
> > Sent: Tuesday, August 08, 2006 7:18 PM
> > To: [EMAIL PROTECTED]ups.com
<mailto:flexcoders%40yahoogroups.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.
> <http://groups.yahoo.com/group/flexcoders/message/46401
> <http://groups.yahoo.com/group/flexcoders/message/46401>
>
> > 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] <mailto:flexcoders%40yahoogroups.com>
> 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]
<mailto:flexcoders%40yahoogroups.com>
> ups.com
> > [mailto:flexcoders@yahoogro
<mailto:flexcoders%40yahoogroups.com>
> ups.com]
> > On
> > > Behalf Of kaleb_pederson
> > > Sent: Tuesday, August 08, 2006 1:38 AM
> > > To: [EMAIL PROTECTED] <mailto:flexcoders%40yahoogroups.com>
> 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. <http://192.168.1.1:8080/myserv/myserv?wsdl
> <http://192.168.1.1:8080/myserv/myserv?wsdl>
>
> > 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
> > >
> >
>