PHP SoapClient: переданный объект получен как NULL в Java

Я сделал php мыло-клиент. Я передаю сложный объект и строку во время мыльного звонка. Переданный объект получен как нуль в Java, но переданная строка получена правильно. Класс class (userGPSDataVisulization) имеет атрибуты long (userGPSDataId), int, float и string. Может ли это быть потому, что оно отправляется как простое целое число и строка из Java вместо long и float?

class RetrieveUserGPSDataVisualization  {

public $userGPSDataVisulization;
public $StorageMedium='DATABASE';

function RetrieveUserGPSDataVisualization ($userGPSDataVisulization){

$this->userGPSDataVisulization = $userGPSDataVisulization;
}
}
class userGPSDataVisulization  {

public $id=0;
public $latitude=0.0;
public $longitude=0.0;
public $speed=0.0;
public $timeStamp='';
public $timeStampStart='';
public $timeStampEnd='';
public $userGPSDataId='0';
public $userDeviceId='0';

function userGPSDataVisulization ($timeStampStart,$timeStampEnd){

$this->timeStampStart = $timeStampStart;
$this->timeStampEnd = $timeStampEnd;

}}
$client = new SoapClient("http://localhost/etc/Layer?WSDL");

//setting dates
$useRGPSDataVisulization = new userGPSDataVisulization ('2014 12 01 00:00:00','2014 12 01 23:59:59');

//populate object
$RetrieveUserGPSDataVisualization=new RetrieveUserGPSDataVisualization($useRGPSDataVisulization);
$params = array(
"RetrieveUserGPSDataVisualization" => $RetrieveUserGPSDataVisualization,
);

var_dump($params);

try{
$response = $client->__soapCall("RetrieveUserGPSDataVisualization", $params);
var_dump($response);
}
catch(Exception $e) {
echo 'Message: ' .$e->getMessage();
}

Благодаря отладке я узнал, что объект useRGPSDataVisulization является нулевым в Java, но перед вызовом soapcall в php он показывает все значения. Это связано с длинным типом данных в Java?

Спасибо

Обновление: я решил эту проблему
Я заполнил объект, как это, и объект не получает как NULL. Это еще один способ вызвать функцию мыла.

$useRGPSDataVisulization = $client->RetrieveUserGPSDataVisualization($RetrieveUserGPSDataVisualization);

Спасибо всем, кто ответил и руководствовался

2

Решение

Попробуйте передать SOAP_ENC_OBJECT

$struct = new stdClass();
$struct->item1 = $item1;

$response = $client->RetrieveUserGPSDataVisualization(new SoapVar($struct, SOAP_ENC_OBJECT));
3

Другие решения

Переименуйте следующее:

function userGPSDataVisulization ($timeStampStart,$timeStampEnd){

Для того, чтобы:

function __construct ($timeStampStart,$timeStampEnd){
2

По вопросам рекламы [email protected]