2013-09-01 2 views
0

Я хочу использовать пакет nusoap для работы с некоторыми веб-сервисами. согласно документации NuSOAP, мы сначала должны включить nusoap.php в наш скрипт, а затем писать другие коды ...получение ошибки сервера 500 с помощью nusoap

http://www.scottnichol.com/nusoapintro.htm

но когда я включить nusoap.php в мой код, как это:

require_once('nusoap.php'); 

я получаю ошибку сервера 500, что говорит (IE 10):

Most likely causes: 
    •The website is under maintenance. 
    •The website has a programming error. 

, но я не понимаю, что это Caus этого ... я позволил error_reporting в php.ini, но он не показывает никакой ошибки, он говорит, что ошибка сервера 500!
В чем проблема? как я могу узнать больше о причине этой проблемы?

ответ

0

У меня недавно была такая же проблема. Это был первый веб-сервис, который я создал, и я ничего не знал, поэтому причиной моей проблемы была моя собственная глупость.

Это было то, что это выглядело как:

error_reporting(E_ALL); 
require_once("lib/nusoap.php"); 
$namespace = "http://www.mywebsite.com/services"; 

$server = new soap_server(); 
$server->configureWSDL("TestService"); 
$server->wsdl->schemaTargetNamespace = $namespace; 

$server->register('TestFunction', array('test'=>'xsd:string'), array('return'=>'xsd:string'), $namespace, false, 'rpc', 'encoded', 'Function for evaluation of SOAP'); 

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; 
$server->service($HTTP_RAW_POST_DATA); 

Итак, вы видите, я просто забыл определить функцию ..

следующие работы:

error_reporting(E_ALL); 
require_once("lib/nusoap.php"); 
$namespace = "http://www.mywebsite.com/services"; 

$server = new soap_server(); 
$server->configureWSDL("TestService"); 
$server->wsdl->schemaTargetNamespace = $namespace; 

$server->register('TestFunction', array('test'=>'xsd:string'), array('return'=>'xsd:string'), $namespace, false, 'rpc', 'encoded', 'Function for evaluation of SOAP'); 

function TestFunction($test) { 
    return "Response: ".$test; 
} 

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; 
$server->service($HTTP_RAW_POST_DATA); 

Я надеюсь, что я мог бы помочь вы.