In Flex 1.5, I was able to preload/embed wsdl into the swf by overriding the sendAndLoad method of the native XML object…

 

Take a look at my blog posting here to see how: 

https://www.cynergysystems.com/blogs/page/andrewtrice?entry=override_native_object_methods_in

 

I don’t think that this exact syntax will work in Flex 2 b/c you can no longer modify the prototype of a native object.    In Flex 2, you could try extending the WebService object like this (although I have no guarantee that this would work… I have not actually tried it).  Use the EmbededWSDL class instead of the WebService class.  You might also need to override the loadWsdl function.

 

package

{

            import mx.rpc.soap.WebService;

 

            public class EmbededWSDL extends WebService

            {

                       

                        public function EmbededWSDL(){

                                   

                                    this.wsdl = "MY WSDL STRING";

                                    super();

                        }

                       

            }

}

 

 

Hope that helps!

-Andy

 

_____________________________________

Andrew Trice

Cynergy Systems, Inc.

http://www.cynergysystems.com

 

Blog: http://www.cynergysystems.com/blogs/page/andrewtrice

Email: [EMAIL PROTECTED]

Office: 866-CYNERGY 

 


From: [email protected] [mailto:[email protected]] On Behalf Of Tim Hoff
Sent: Thursday, June 29, 2006 4:16 AM
To: [email protected]
Subject: [flexcoders] Re: Embedding WSDL?

 

Kelly,

As Matt observed, I'm using a single AS class (Cairngorm ServiceLocator) for webservice calls.  It's based on Jeff Tapper's DataManager class:

http://jeff.mxdj.com/as3datamanagerfix.htm 

I changed the logic to get the wsdl, when the application loads, to cut a few seconds off of the initial data call.  It appears that once the wsdl is loaded, the webservice doesn't request it again for subsequent calls.  If all of your calls are to the same webservice, there would only be one request for the wsdl.  This would address your client's concern about network traffic.

-TH

Note: You don't have to use AS.  The same thing can be done with mxml.


--- In [email protected], "Kelly Birr" <[EMAIL PROTECTED]> wrote:
>
> thanks, I'll have to somehow centralize my web services into one component,
> and find a way to mange getting the result events to the correct place
> depending on what the user is doing.
>
> - Kelly
>
> _____
>
> From: [email protected] [mailto:[email protected]] On
> Behalf Of Matt Chotin
> Sent: Thursday, June 29, 2006 12:06 AM
> To: [email protected]
> Subject: RE: [flexcoders] Re: Embedding WSDL?
>
>
>
> We don't have WSDL caching right now. It sounds like your app may call for
> a strategy like a ServiceLocator where you put the WebService in a single
> location and refer to it from elsewhere. If you have 15 WebService tags you
> will get 15 WSDL requests even if they are for the same WSDL. So two tags,
> less of a deal, 15, big pain. The DataServices approach that Tim has here
> is one example of a ServiceLocator.
>
>
>
> Matt
>
>
>
> _____
>
> From: [email protected] [mailto:[email protected]] On
> Behalf Of Tim Hoff
> Sent: Wednesday, June 28, 2006 9:49 PM
> To: [email protected]
> Subject: [flexcoders] Re: Embedding WSDL?
>
>
>
> I have the same question as Kelly. It seems that the initial call
> to a webservice is slower because of the wsdl. Subsequent calls are
> fine, but there is always an initial delay. I know, switch to
> HTTPService or RemoteObject.
>
> For the following code, I'm thinking that I could override the
> loadWSDL() function, but the mx.rpc.soap.WebService API doesn't
> appear in the framework. Is the API final? Is there a work-around
> here?
>
> public function DataServices(pri:PrivateClass, wsdl:String)
> {
> this.ws = new WebService();
> ws.wsdl = wsdl;
> ws.loadWSDL();
> ws.useProxy = false;
> ws.makeObjectsBindable = false;
> }
>
> Thank you,
> -TH
>
> --- In [EMAIL PROTECTED] <mailto:flexcoders%40yahoogroups.com> ups.com,
> "Kelly Birr" kelly.fx@ wrote:
> >
> > Is it possible to somehow embed WSDL in the compiled SWF, or
> read/write the
> > actual WSDL directly to the web services without them having to
> request it
> > via HTTP at runtime? Can I bind the WSDL to a string that I
> manually
> > request via UrlLoader?
> >
> > Along with that if I have 15 different web service tags on
> different MXML
> > components of my application that all call the same web service
> with the
> > exact same WSDL Uri, will the WSDL cache? or will each Web Service
> instance
> > make a request for the WSDL via HTTP when it is initialized.
> >
> > My client is very concerned that the application may be
> too "chatty" on
> > their network and it seems that these WSDL requests may be part of
> the
> > problem. I'm using Flex 2.0 RTM.
> >
> > - Kelly
> >
>

__._,_.___

--
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