public function generate($wsdlUrl)
 {
     /*WebServiceInspector*/
     $webServiceInspector = new WebServiceInspector();
     /*WebServiceDescriptor*/
     $service = $webServiceInspector->inspect($wsdlUrl);
     $this->write("\n<?php\nclass {$service->getName()} \n{");
     $methods = $service->getMethods();
     foreach ($methods as $method) {
     }
     $this->write("\t\n}\t\t\n?>\t\t");
 }
 public function invoke($targetObject, $function, $arguments)
 {
     $proxyhost = '';
     $proxyport = '';
     $proxyusername = '';
     $proxypassword = '';
     $client = new soapclient($targetObject, true, $proxyhost, $proxyport, $proxyusername, $proxypassword);
     $err = $client->getError();
     if ($err) {
         throw new Exception($err);
     }
     $args = array();
     foreach ($arguments as $argument) {
         if ($argument instanceof IAdaptingType) {
             $args[] = $argument->defaultAdapt();
         } else {
             $args[] = $argument;
         }
     }
     $serviceDesription;
     //			if(isset($_SESSION['wsdl'][$targetObject][$function]))
     //			{
     //				$serviceDesription = unserialize($_SESSION['wsdl'][$targetObject][$function]);
     //				var_dump($serviceDesription);
     //			}
     //			else
     //			{
     $webInsp = new WebServiceInspector();
     $webInsp->inspect($targetObject, $function);
     $serviceDesription = $webInsp->serviceDescriptor;
     $_SESSION['wsdl'][$targetObject][$function] = serialize($serviceDesription);
     //			}
     $methods = $serviceDesription->getMethods();
     $method = null;
     foreach ($methods as $method) {
         if ($method->getName() == $function) {
             break;
         }
     }
     $postdata = array(array());
     foreach ($method->getArguments() as $argument) {
         $this->getArrayArguments($postdata[0], $argument->getType(), $args);
     }
     $result = $client->call($function, $postdata);
     return new Value($result);
 }