Ik ben momenteel bezig met wat test-applicaties.
Hierbij wil ik een tree vullen aan de hand van een webservice die ik in .NET maak.
Deze webservice geeft momenteel hard-coded data terug, maar zal straks een databaseje moeten aanspreken.
Het probleem is echter als volgt:
Als ik de output van m'n webservice copy paste in een .xml file, en deze inlees met een HttpService is er niks aan de hand, dan werkt het goed.
Als ik echter m.b.v. een WebService object m'n webservice direct aanspreek, krijg ik null terug.
Hier mijn gebruikte code:
M'n output van m'n xml/webservice is (die gegenereed wordt door zo'n asp.net pagina):
Ik hoop dat iemand me kan helpen, want ik zie echt niet wat ik fout doe.
Binnen de resultHandler gaat ie fout, waar die event.result probeert aan te spreken.
Dat levert op:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
Hij vind de webservice wel, want als ik GetItemsAAAAA() aanroep ipv GetItems krijg ik netjes te zien dat ie die functie niet kent binnen de webservice.
Ik heb ook geprobeerd ipv
het volgende te doen:
Hier krijg ik niet de nullpointer, maar hij doet er ook niks mee.
Als ik hier een breakpoint op zet, ziet de waarde van "event.result[0]" er ook raar uit naar mijn idee.
Ik krijg namelijk 2x een node GetItemResult daarin te zien.
Maar waarom... ik heb geen idee.
Beide (flex + webservice) draaien op dezelfde machine hier.
Heeft iemand enig idee wat ik fout doe?
Al vast bedankt.
Hierbij wil ik een tree vullen aan de hand van een webservice die ik in .NET maak.
Deze webservice geeft momenteel hard-coded data terug, maar zal straks een databaseje moeten aanspreken.
Het probleem is echter als volgt:
Als ik de output van m'n webservice copy paste in een .xml file, en deze inlees met een HttpService is er niks aan de hand, dan werkt het goed.
Als ik echter m.b.v. een WebService object m'n webservice direct aanspreek, krijg ik null terug.
Hier mijn gebruikte code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| <mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
default xml namespace = "http://myNamespace.nl";
[Bindable]
private var xmlData : XMLList;
private function resultHandler(event:ResultEvent):void
{
var result:XML = event.result as XML;
xmlData = result.Item;
}
]]>
</mx:Script>
<mx:WebService id="wsItems"
wsdl="http://localhost:3500/flex_test/Service.asmx?WSDL"
showBusyCursor="true"
load="wsItems.GetItems()">
<mx:operation name="GetItems" result="resultHandler(event)" resultFormat="e4x" />
</mx:WebService>
<mx:Tree dataProvider="{xmlData}" id="tvItems"
labelField="@Titel" width="100%" height="100%" /> |
M'n output van m'n xml/webservice is (die gegenereed wordt door zo'n asp.net pagina):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <?xml version="1.0" encoding="utf-8"?>
<ArrayOfItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://myNamespace.nl">
<Item Titel="MyItem100">
<Item Titel="Child1" />
<Item Titel="Child2" />
<Item Titel="Child3" />
</Item>
<Item Titel="MyItem200">
<Item Titel="Child4" />
<Item Titel="Child5" />
<Item Titel="Child6" />
</Item>
<Item Titel="MyITem300" />
</ArrayOfItem> |
Ik hoop dat iemand me kan helpen, want ik zie echt niet wat ik fout doe.
Binnen de resultHandler gaat ie fout, waar die event.result probeert aan te spreken.
Dat levert op:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
Hij vind de webservice wel, want als ik GetItemsAAAAA() aanroep ipv GetItems krijg ik netjes te zien dat ie die functie niet kent binnen de webservice.
Ik heb ook geprobeerd ipv
code:
1
| var result:XML = event.result as XML |
het volgende te doen:
code:
1
| var result:XML = event.result[0] |
Hier krijg ik niet de nullpointer, maar hij doet er ook niks mee.
Als ik hier een breakpoint op zet, ziet de waarde van "event.result[0]" er ook raar uit naar mijn idee.
Ik krijg namelijk 2x een node GetItemResult daarin te zien.
Maar waarom... ik heb geen idee.
Beide (flex + webservice) draaien op dezelfde machine hier.
Heeft iemand enig idee wat ik fout doe?
Al vast bedankt.