я столкнулся с небольшой проблемой и не могу найти решение. Ситуация:
print_r()
показывает следующее (сокращенное к соответствующим частям): Объект stdClass ( [enthMWsT] => 0 [preisStreckeGesamt] => 28.6 [waehrung] => EUR [applikationsDaten] => stdClass Object ( [entry] => Array ( [0] => Массив ([ключ] => тест [значение] => 1) [1] => Массив ([ключ] => fahrDrucken [значение] => 1) [2] => Массив ([ключ] => fahrLfdnr [значение] => 0) ) )
System.out.print()
, я получаю следующее: [STDOUT] {[ключ: null] = [значение: null], [ключ: null] = [значение: null], [ключ: null] = [значение: null]}
как вы можете видеть, это число элементов правильно, но все ключи имеют значения null
.
моя проблема: почему я не получаю правильные ключи / значения на стороне java?
PS: если вам нужна дополнительная информация, чтобы проанализировать это, пожалуйста, не стесняйтесь спрашивать
РЕДАКТИРОВАТЬ:
на java-стороне я запускаю jBoss 4.2.2GA
на PHP-стороне я использую объект SoapClient следующим образом:
$conf['soap_wsdl'] = "http://192.168.0.213:8180/R1WebService/Service?wsdl"; $conf['soap_timeout'] = 5; $soap = new SoapClient($conf['soap_wsdl'], array('connection_timeout' => $conf['soap_timeout'])); $bst = $soap->getBestellung()->return; // some stuff $return = $soap->saveBestellung(array($bst))->return;
Я нашел решение: проблема была в моем java-коде. недостаточно объявить хэш-файл в объекте следующим образом:
private HashMap applikationsDaten; public HashMap getApplikationsDaten() { return applikationsDaten; } public void setApplikationsDaten(HashMap applikationsDaten) { this.applikationsDaten = applikationsDaten; }
чтобы заставить его работать, мне пришлось указывать типы данных для Hashmap следующим образом:
private HashMap<String,String> applikationsDaten; public HashMap<String,String> getApplikationsDaten() { return applikationsDaten; } public void setApplikationsDaten(HashMap<String,String> applikationsDaten) { this.applikationsDaten = applikationsDaten; }
после изменения этого и повторного развертывания веб-службы он работал, как ожидалось. Я оставлю этот вопрос и помечаю его как вики сообщества, а не удаляю его – возможно, это помогает кому-то искать такой же провал.
PS: благодаря ZeissS за его намеки.