Officially, I don't believe it is supported to call a WebService directly
from an AS class, without first having an instance of the
WebServiceConnector in an mxml file within the application. That said, I
have seen it done...
Try something like this:
class custom.DataService extends mx.core.UIObject{
var remoteDataService:mx.servicetags.Service;
function DataService() {
}
function init():Void{
super.init();
var props = new Object();
applyProperties(props, props);
_custom_DataService_webServiceSetup();
}
function _custom_DataService_webServiceSetup():Void {
remoteDataService = new mx.servicetags.Service(this._url,
"http://localhost:8500/mmcourses/faad2004/dbs/Bikeparts.cfc?wsdl", new
mx.services.Log(1, "WebService"), null, this, null, null, null, null, false);
remoteDataService.__name = "remoteDataService";
remoteDataService.__faultHandler = function(event) {
faultHandler(event)
}
remoteDataService.__resultHandler = function(event)
{
resultHandler(event)
}
remoteDataService.__showBusyCursor = true;
}
function resultHandler(event){
// do something
}
function faultHandler(event){
// do something
}
}
I created this by turning on "keep-generated-as" in the flex config file,
and then ran an app with a WebService in it. The generated AS for that
mxml file will contain all the correct code to instantiate and use the service.
I had a DataService.mxml file which looks like this:
<s:ProxyFactory xmlns:mx="http://www.macromedia.com/2003/mxml"
xmlns:s="fast.services.*">
<mx:WebService id="remoteDataService"
wsdl="http://localhost:8500/mmcourses/faad2004/dbs/Bikeparts.cfc?wsdl"
result="resultHandler(event)" fault="faultHandler(event)"
showBusyCursor="true" useProxy="false"/>
</s:ProxyFactory>
Which generated this AS:
// C:\Program
Files\Macromedia\Flex15\jrun4\servers\default\flex\MAX05\start\custom\DataService-generated.as
class custom.DataService extends fast.services.ProxyFactory
{
var remoteDataService:mx.servicetags.Service;
function DataService()
{
}
function init():Void
{
super.init();
var props = new Object();
applyProperties(props, props);
_custom_DataService_webServiceSetup();
}
// Event handler functions...
function _custom_DataService_webServiceSetup():Void
{
remoteDataService = new mx.servicetags.Service(this._url,
"http://localhost:8500/mmcourses/faad2004/dbs/Bikeparts.cfc?wsdl", new
mx.services.Log(1, "WebService"), null, this, null, null, null, null, false);
remoteDataService.__name = "remoteDataService";
remoteDataService.__faultHandler = function(event) {
faultHandler(event)
}
remoteDataService.__resultHandler = function(event)
{
resultHandler(event)
}
remoteDataService.__showBusyCursor = true;
}
}
Once you have the genreated AS, you can rename it as DataService.as, and
rename the DataService.mxml to something else. So long as the
DataService.as file is in the same directory, it will continue to run
without issue. My example uses the Macromedia FAST Toolkit for the Data
Services, but that is not a requirement for making this work.
At 02:44 PM 8/26/2005, inajamaica wrote:
>All,
>
>I have been up & down the flex documentation and the web (& searched
>through alot of this forum), but I can't seem to find a concrete
>example of calling a webservice and using the WebService object SOLELY
>with ActionScript.
>
>I have the following so far:
>
>//supposedly, this parses the wsdl so that...
>var ws = new WebService (wsdlLocation);
>ws.setEndpointURI
>("<http://somewhere.com/endpoint>http://somewhere.com/endpoint");
>//...I can just do this:
>result = ws.anOperationDefinedInTheWSDL (parameter);
>
>But I know I'm missing something here...anyone have experience here?
>For the insane cost of Flex, it's hard to believe that I can't find
>ALL this info @ Macromedia's website.
>
>Thanks..
>
>
>
>
>--
>Flexcoders Mailing List
>FAQ:
><http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt>http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
>Search Archives:
><http://www.mail-archive.com/flexcoders%40yahoogroups.com>http://www.mail-archive.com/flexcoders%40yahoogroups.com
>
>
>
>
>
>SPONSORED LINKS
><http://groups.yahoo.com/gads?t=ms&k=Computer+software+testing&w1=Computer+software+testing&w2=Macromedia+flex&w3=Development&w4=Software+developer&c=4&s=93&.sig=kh2CguJwmatU5oBXjFo9Rg>Computer
>
>software testing
><http://groups.yahoo.com/gads?t=ms&k=Macromedia+flex&w1=Computer+software+testing&w2=Macromedia+flex&w3=Development&w4=Software+developer&c=4&s=93&.sig=dAUcEV7do91-wrRtVS641g>Macromedia
>
>flex
><http://groups.yahoo.com/gads?t=ms&k=Development&w1=Computer+software+testing&w2=Macromedia+flex&w3=Development&w4=Software+developer&c=4&s=93&.sig=AlxNUQBOI7Io7S7nhmxV0Q>Development
>
>
><http://groups.yahoo.com/gads?t=ms&k=Software+developer&w1=Computer+software+testing&w2=Macromedia+flex&w3=Development&w4=Software+developer&c=4&s=93&.sig=QWIit8JayomoIHLVkV3FDg>Software
>
>developer
>
>
>----------
>YAHOO! GROUPS LINKS
>
> * Visit your group
> "<http://groups.yahoo.com/group/flexcoders>flexcoders" on the web.
> *
> * To unsubscribe from this group, send an email to:
> *
> <mailto:[EMAIL PROTECTED]>[EMAIL PROTECTED]
>
> *
> * Your use of Yahoo! Groups is subject to the
> <http://docs.yahoo.com/info/terms/>Yahoo! Terms of Service.
>
>
>----------
------------------------ Yahoo! Groups Sponsor --------------------~-->
Fair play? Video games influencing politics. Click and talk back!
http://us.click.yahoo.com/T8sf5C/tzNLAA/TtwFAA/nhFolB/TM
--------------------------------------------------------------------~->
--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/flexcoders/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/