Ich versuche, einen Seifenserver in Laravel 5.2 zu erstellen. Dies ist mein Code:
Inhalt von SoapController.php
:Soap-Server funktioniert nicht in Laravel 5.2
<?php namespace Giant\Http\Controllers;
class SoapController extends Controller {
public function __construct() {
parent::__construct();
ini_set('soap.wsdl_cache_enabled', 0);
ini_set('soap.wsdl_cache_ttl', 0);
ini_set('default_socket_timeout', 300);
ini_set('max_execution_time', 0);
}
public function server() {
$location = url('server'); // http://payment.dev/server
$namespace = $location;
$class = "\\Giant\\Http\\Controllers\\HelloWorld";
$wsdl = new \WSDL\WSDLCreator($class, $location);
$wsdl->setNamespace($namespace);
if (isset($_GET['wsdl'])) {
$wsdl->renderWSDL();
exit;
}
$wsdl->renderWSDLService();
$wsdlUrl = url('wsdl/server.wsdl');
$server = new \SoapServer(
url('server?wsdl'),
array(
'exceptions' => 1,
'trace' => 1,
)
);
$server->setClass($class);
$server->handle();
exit;
}
public function client() {
$wsdl = url('server?wsdl');
$client = new \SoapClient($wsdl);
try {
$res = $client->hello('world');
dd($res);
} catch (\Exception $ex) {
dd($ex);
}
}
}
class HelloWorld {
/**
* @WebMethod
* @desc Hello Web-Service
* @param string $name
* @return string $helloMessage
*/
public function hello($name) {
return "hello {$name}";
}
}
Meine WSDL-Datei ist: wsdl
Und mein routes
:
Route::any('/server', '[email protected]');
Route::any('/client', '[email protected]');
Und das Ergebnis ich:
Internal Server Error
:(
Ich verwende piotrooo/wsdl-creator, um WSDL zu generieren. (Es gibt kein Problem damit, es funktioniert in Laravel 4.2). Und ich habe auch nusoap und php2wsdl Bibliotheken ausprobiert.
Mein SoapClient funktioniert gut. Weil es Service von anderen Soap-Servern in anderen URLs erhalten kann, aber ich denke, dass mein SoapServer nicht gut funktionieren kann.
Ich bekomme sogar keine Fehler in der Fehlerprotokolldatei.
ist dies ein Tippfehler oder ein kleiner Fehler, den Sie nicht gesehen haben, der dazu führt, dass das Skript fehlschlägt? 'Array ( 'Ausnahmen' => 1, 'trace' => 1, )' sollte 'Array ( 'Ausnahmen' => 1, 'trace' => 1 )'. Wenn Sie deshalb einen Fehler erhalten, sollte ich diesen Kommentar in eine Antwort umwandeln. –