[vbox-dev] SOAP & PHP problem...

Michael A. Thompson mathomp at bgsu.edu
Tue Sep 9 20:27:43 GMT 2008


Hi,

I am having issues with the SOAP interface to vboxwebsrv using php. I  
am sure the problem is mostly my fault as I am new to SOAP.
php version: 5.2.1
VBox Version: 2.0.0

Here is the error I am getting when trying top execute the  
IVirtualBox_getVersion method...

Getting VBox Version
Code: 0
Message: SOAP-ERROR: Encoding: object hasn't '_this' property
Trace: #0 [internal function]: SoapClient->__call 
('IVirtualBox_get...', Array) #1 /Users/xxxx/Sites/vbox/index.php 
(24): SoapClient->IVirtualBox_getVersion(Object(stdClass)) #2 {main}

If anyone can point me in the right direction would be greatly  
appreciated...

The source example:
<?php

//create a SOAP connection to the vboxwebsrv
print('SOAP VBox');

print('<br><br>Connecting...');
$client = new SoapClient("vboxwebService.wsdl");
if($client) {
	print('<br>connected<br>');
	print(var_dump($client) . '<br>');
	print_r($client);
	print('<br><br>Authenticating...');
	$vbox = $client->IWebsessionManager_logon("test", "test");
	if($vbox) {
		print('<br>logged in<br>');
		print(var_dump($vbox) . '<br>');
		print_r($vbox);
	} else {
		print('<br>not logged in');
	}
	//get vbox version
	try {
		print('<br><br>Getting VBox Version');
		$ver = $client->IVirtualBox_getVersion($vbox);
		print("<br>" . $ver);
		print_r($ver);
	} catch (SoapFault $f) {
		print('<br> Code: ' . $f->getCode() . '<br> Message: ' . $f- 
 >getMessage() . '<br> Trace: ' . $f->getTraceAsString());
	}
} else {
	print('<br>not connected');
}

//list all vbox manage functions
print('<br><br><br>Show all VBox functions...');
echo '<br>=====================================<br>';
var_dump($client->__getFunctions());

//and logoff when done
print('<br>Logoff...');
$client->IWebsessionManager_logoff();
print('<br>==============================<br>');
var_dump($client);
?>

The complete output:
SOAP VBox

Connecting...
connected
object(SoapClient)#1 (2) { ["_soap_version"]=> int(1) ["sdl"]=>  
resource(2) of type (Unknown) }
SoapClient Object ( [_soap_version] => 1 [sdl] => Resource id #2 )

Authenticating...
logged in
object(stdClass)#2 (1) { ["returnval"]=> string(33)  
"af70c6c5340febb3-0000000000000012" }
stdClass Object ( [returnval] => af70c6c5340febb3-0000000000000012 )

Getting VBox Version
Code: 0
Message: SOAP-ERROR: Encoding: object hasn't '_this' property
Trace: #0 [internal function]: SoapClient->__call 
('IVirtualBox_get...', Array) #1 /Users/xxxxx/Sites/vbox/index.php 
(24): SoapClient->IVirtualBox_getVersion(Object(stdClass)) #2 {main}


Show all VBox functions...
=====================================
array(479) { [0]=> string(89) "IVirtualBox_getVersionResponse  
IVirtualBox_getVersion(IVirtualBox_getVersion $parameters)" [1]=>  
string(101) "IVirtualBox_getPackageTypeResponse  
IVirtualBox_getPackageType(IVirtualBox_getPackageType  
$parameters)" [2]=> string(98) "IVirtualBox_getHomeFolderResponse  
IVirtualBox_getHomeFolder(IVirtualBox_getHomeFolder $parameters)" [3] 
=> string(116) "IVirtualBox_getSettingsFilePathResponse  
IVirtualBox_getSettingsFilePath(IVirtualBox_getSettingsFilePath  
$parameters)" [4]=> string(125)  
"IVirtualBox_getSettingsFileVersionResponse  
IVirtualBox_getSettingsFileVersion(IVirtualBox_getSettingsFileVersion...

truncated...

Logoff...
==============================
object(SoapClient)#1 (3) { ["_soap_version"]=> int(1) ["sdl"]=>  
resource(2) of type (Unknown) ["httpurl"]=> resource(6) of type  
(Unknown) }

thanks,
m





More information about the vbox-dev mailing list