Веб-сервис NuSOAP PHP - PullRequest
       18

Веб-сервис NuSOAP PHP

5 голосов
/ 11 апреля 2009

Я использую NuSOAP, чтобы попытаться использовать веб-сервис, встроенный в Java. У меня есть этот код до сих пор:

<?php
require_once('lib/nusoap.php'); 
$wsdl="http://localhost:8080/HelloWorldWS/sayHiService?WSDL";
$client=new nusoap_client($wsdl, 'wsdl');
$param='John';#array('name'=>'John'); 
echo $client->call('Hey', $param);
unset($client);
?>

но когда веб-страница загружается, я получаю пустую страницу даже в коде, и я действительно не знаю почему. Я делаю что-то неправильно?

Ответы [ 6 ]

8 голосов
/ 11 апреля 2009

, хотя NuSOAP является очень распространенной библиотекой PHP SOAP, я думаю, что это основное применение в приложениях PHP4. потому что PHP5 имеет встроенное расширение SOAP, которое работает быстрее (потому что это скомпилированное расширение). Я также рекомендую использовать библиотеку Zend Framework SOAP. но я помню, что хотел использовать какой-то веб-сервис (не написанный мной, реализованный на Java), и ни один из этих клиентов SOAP не работал, кроме NuSOAP. и я действительно не мог понять, почему.

В любом случае, вот что я сделал, чтобы использовать этот веб-сервис тогда:

$soapClient = new nusoap_client($wsdlFile, 'wsdl', '', '', '', '');
$soapClient->soap_defencoding = 'UTF-8';
$soapClient->debug_flag = false;
$soapError = $soapClient->getError();
if (! empty($soapError)) {
    $errorMessage = 'Nusoap object creation failed: ' . $soapError;
    throw new Exception($errorMessage);
}
// calling verifyT method, using 2 parameters.
$tResult = $soapClient->call( 'verifyT', array($param1, $param2) );
$soapError = $soapClient->getError();
if (! empty($soapError)) {
    $errorMessage = 'SOAP method invocation (verifyT) failed: ' . $soapError;
    throw new Exception($errorMessage);
}
if ($soapClient->fault) {
    $fault = "{$soapClient->faultcode}: {$soapClient->faultdetail} ";
    // handle fault situation
}
4 голосов
/ 18 января 2010

Не используйте NuSoap. PHP был родной мыльный клиент с версии 5

Есть несколько веских причин продолжать использовать NuSOAP на PHP5:

  • NuSOAP генерирует список методов когда вы GET страницы
  • NuSOAP генерирует WSDL "на лету" действительно полезная функция, которая не обеспечивается нативной реализацией SOAP в PHP 5
4 голосов
/ 11 апреля 2009

Не используйте NuSoap. PHP имеет собственный клиент SOAP начиная с версии 5, который гораздо стабильнее, кроме того, что он быстрее.

.. когда веб-страница загружается, я получаю пустую страницу, ничего не ..

Это, вероятно, фатальная ошибка. Попробуйте проверить журналы ошибок, чтобы увидеть, что пошло не так. Или установите display_errors = on

1 голос
/ 11 апреля 2009

Да, вы делаете что-то не так. Трудно понять, что основано на пустой странице, но я бы начал с этой строки, которая не похожа на действительный PHP:

$ = пары 'John'; # массив ( 'имени' => 'John');

"#" не запускает комментарий в PHP; "//" делает

Если исправление, которое все еще приводит к пустой странице, включите отчеты об ошибках и / или добавьте дополнительные выходные данные, чтобы увидеть, что именно происходит.

0 голосов
/ 08 мая 2013

Я просто столкнулся с той же проблемой.

Использование include_once вместо require_once решило проблему с пустой страницей. Конечно, это не идеальное решение: Разница между require, include и require_once?

0 голосов
/ 20 января 2012

Пожалуйста, проверьте HTML, сгенерированный сервером в вашем браузере. В моем случае результат содержал теги XML, поэтому браузер не мог правильно отобразить информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...