Ben bezig met het ontwikkelen van een web service. De server is gebouwd in Java (GlassFish) met NetBeans. De client is gebouwd in PHP. De service werkt met SOAP over HTTP.
Probeer om een ArrayList gevuld met HashMaps te verwerken in de PHP client, echter zonder succes. Deze (tijdelijke) code gebruik ik aan de Java-kant:
In de web service tester lijkt alles goed te gaan:
Vervolgens voer ik dit uit aan de client side:
Maar dan blijkt er een leeg object terug gestuurd te worden:
Kennelijk kan PHP niet met de ArrayList gevuld met HashMaps overweg. Had gehoopt dat de data zonder problemen in PHP verwerkt kon worden, maar dat blijkt dus niet het geval.
Hoe kan ik ervoor zorgen dat de data in PHP gelezen kan worden?
Probeer om een ArrayList gevuld met HashMaps te verwerken in de PHP client, echter zonder succes. Deze (tijdelijke) code gebruik ik aan de Java-kant:
Java:
1
2
3
4
5
6
7
8
9
10
11
| @WebMethod(operationName = "searchEntries") public java.util.ArrayList<HashMap<String, String>> searchEntries(String query) { ArrayList<HashMap<String, String>> entries = new ArrayList<HashMap<String, String>>(); HashMap<String,String> map = new HashMap<String,String>(); map.put("foo", "bar"); map.put("bar", "foo"); entries.add(map); return entries; } |
In de web service tester lijkt alles goed te gaan:
code:
1
2
3
| Method returned java.util.List : "[org.me.o9000kb.HashMap@4a4f38]" |
Vervolgens voer ik dit uit aan de client side:
PHP:
1
2
3
4
5
| <?php ini_set('soap.wsdl_cache_enabled', "0"); $client = new SoapClient('http://localhost:8080/O9000KBWS/O9000KBWS?WSDL'); print_r($client->searchEntries()); ?> |
Maar dan blijkt er een leeg object terug gestuurd te worden:
code:
1
2
3
4
5
6
7
| stdClass Object
(
[return] => stdClass Object
(
)
) |
Kennelijk kan PHP niet met de ArrayList gevuld met HashMaps overweg. Had gehoopt dat de data zonder problemen in PHP verwerkt kon worden, maar dat blijkt dus niet het geval.
Hoe kan ik ervoor zorgen dat de data in PHP gelezen kan worden?