I am just learning Flex and trying to connect it to Salesforce.com web
services. I created a very basic sample app, but I cannot get it to do anything
as I continually get this Error #1009 (see output below). I have no idea what I
am doing wrong, I actually followed a video step-by-step and still can't get
this to work.
TypeError: Error #1009: Cannot access a property or method of a null object
reference.
at
mx.utils::URLUtil$/getProtocol()[E:\dev\3.1.0\frameworks\projects\rpc\src\mx\uti
ls\URLUtil.as:199]
at
com.salesforce::Connection/_invoke()[/home/jamesw/projects/mavericks/sdk/src/com
/salesforce/Connection.as:1015]
at
com.salesforce::Connection/invoke()[/home/jamesw/projects/mavericks/sdk/src/com/
salesforce/Connection.as:972]
at
com.salesforce::Connection/query()[/home/jamesw/projects/mavericks/sdk/src/com/s
alesforce/Connection.as:467]
at main/render()[/Users/MFidler_Work/Documents/Flex Builder 3/Flex Sample
App/src/main.mxml:22]
at
main/___main_Application1_applicationComplete()[/Users/MFidler_Work/Documents/Fl
ex Builder 3/Flex Sample App/src/main.mxml:2]
at flash.events::EventDispatcher/dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at
mx.core::UIComponent/dispatchEvent()[E:\dev\3.1.0\frameworks\projects\framework\
src\mx\core\UIComponent.as:9156]
at
mx.managers::SystemManager/preloader_preloaderDone Handler()[E:\dev\3.1.0\framewo
rks\projects\framework\src\mx\managers\SystemManag er.as:2265]
at flash.events::EventDispatcher/dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at
mx.preloaders::Preloader/displayClassCompleteHandl er()[E:\dev\3.1.0\frameworks\p
rojects\framework\src\mx\preloaders\Preloader.as:4 34]
at flash.events::EventDispatcher/dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at
mx.preloaders:

ownloadProgressBar/timerHandler()[E:\dev\3.1.0\frameworks\projec
ts\framework\src\mx\preloaders\DownloadProgressBar .as:1451]
at
mx.preloaders:

ownloadProgressBar/initCompleteHan dler()[E:\dev\3.1.0\frameworks
\projects\framework\src\mx\preloaders\DownloadProg ressBar.as:1503]
at flash.events::EventDispatcher/dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at
mx.preloaders::Preloader/dispatchAppEndEvent()[E:\dev\3.1.0\frameworks\projects\
framework\src\mx\preloaders\Preloader.as:291]
at
mx.preloaders::Preloader/appCreationCompleteHandle r()[E:\dev\3.1.0\frameworks\pr
ojects\framework\src\mx\preloaders\Preloader.as:44 2]
at flash.events::EventDispatcher/dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at
mx.core::UIComponent/dispatchEvent()[E:\dev\3.1.0\frameworks\projects\framework\
src\mx\core\UIComponent.as:9156]
at mx.core::UIComponent/set
initialized()[E:\dev\3.1.0\frameworks\projects\framework\src\mx\ core\UIComponent
..as:1167]
at
mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\3.1.0\frameworks\proje
cts\framework\src\mx\managers\LayoutManager.as:701]
at Function/http://adobe.com/AS3/2006/builtin::apply( )
at
mx.core::UIComponent/callLaterDispatcher2()[E:\dev\3.1.0\frameworks\projects\fra
mework\src\mx\core\UIComponent.as:8565]
at
mx.core::UIComponent/callLaterDispatcher()[E:\dev\3.1.0\frameworks\projects\fram
ework\src\mx\core\UIComponent.as:8508]
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
xmlns:salesforce="com.salesforce.*" applicationComplete="render();">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import com.salesforce.results.QueryResult;
import com.salesforce.AsyncResponder;
private function render():void {
apex.query("Select Id, Name From Account limit 30",
new AsyncResponder(
function(qr:QueryResult):void
{
var ar:ArrayCollection = new ArrayCollection();
for (var j:int=0;j<qr.records.length;j++) {
ar.addItem( {Id:qr.records[j].Id, Name:qr.records[j].Name});
}
bg.columns = [new DataGridColumn('Id'), new DataGridColumn('Name')];
bg.dataProvider = ar;
},
function (fault:Object):void {
}
));
}
]]>
</mx:Script>
<salesforce:Connection id="apex" />
<mx

ataGrid id="bg" x="0" y="0" width="100%" height="100%">
<mx:columns>
<mx

ataGridColumn headerText="Id" dataField="col1"/>
<mx

ataGridColumn headerText="Name" dataField="col2"/>
</mx:columns>
</mx

ataGrid>
</mx:Application>