SOAP-ERROR: Encoding: Violation of encoding rules

Help
2014-04-19
2014-04-19
  • Charles Nadeau
    Charles Nadeau
    2014-04-19

    Good evening,

    I am installing phpVirtualBox 3.1 on a machine running Ubuntu Saucy server with VirtualBox 3.10. I used these instructions to install phpVirtualBox: https://gist.github.com/mikedevita/7461832

    Upon starting phpVirtualBox, i am getting an error message saying "SOAP-ERROR: Encoding: Violation of encoding rules".
    Checking the error logs of Apache2, I find these 3 lines matchng the error message:
    [Sat Apr 19 22:45:17.881237 2014] [:error] [pid 1337] [client 192.168.0.5:55161] PHP Fatal error: SOAP-ERROR: Encoding: Violation of encoding rules in /var/www/vb/lib/vboxServiceWrappers.php on line 6642, referer: http://192.168.0.53/vb/
    [Sat Apr 19 22:46:46.932567 2014] [:error] [pid 1519] [client 192.168.0.5:55177] PHP Fatal error: SOAP-ERROR: Encoding: Violation of encoding rules in /var/www/vb/lib/vboxServiceWrappers.php on line 6642, referer: http://192.168.0.53/vb/
    [Sat Apr 19 22:47:38.257639 2014] [:error] [pid 1336] [client 192.168.0.5:55195] PHP Fatal error: SOAP-ERROR: Encoding: Violation of encoding rules in /var/www/vb/lib/vboxServiceWrappers.php on line 6642, referer: http://192.168.0.53/vb/

    The line refered in the error message is:
    $response = $this->connection->__soapCall('IMediumFormat_getCapabilities', array((array)$request));

    From this class:
    class IMediumFormat extends VBox_ManagedObject {

    public function describeFileExtensions() {
    $request = new stdClass();

       $request->_this = $this->handle;
    
       $response = $this->connection->__soapCall('IMediumFormat_describeFileExtensions', array((array)$request));
    
       return array((array)$response->extensions, new DeviceTypeCollection ($this->connection, (array)$response->type));
    

    }

    public function describeProperties() {
    $request = new stdClass();

       $request->_this = $this->handle;
    
       $response = $this->connection->__soapCall('IMediumFormat_describeProperties', array((array)$request));
    
       return array((array)$response->names, (array)$response->description, new DataTypeCollection ($this->connection, (array)$response->types), (array)$response->flags, (array)$respons$
    

    }

    public function getId() {
    $request = new stdClass();
    $request->_this = $this->handle;
    $response = $this->connection->__soapCall('IMediumFormat_getId', array((array)$request));
    return (string)$response->returnval;
    }

    public function getName() {
    $request = new stdClass();
    $request->_this = $this->handle;
    $response = $this->connection->__soapCall('IMediumFormat_getName', array((array)$request));
    return (string)$response->returnval;
    }

    public function getCapabilities() {
    $request = new stdClass();
    $request->_this = $this->handle;
    $response = $this->connection->__soapCall('IMediumFormat_getCapabilities', array((array)$request));
    return (float)$response->returnval;
    }
    }

    Is it a bug in the code or something I should check on my workstation. Which SOAP package should In have on my machine?

    Thanks!

    Charles