Как вызвать внешние веб-службы PHP с помощью WSO2 ESB

Привет, сообщество WSO2 ESB,

У меня есть услуги на PHP. Я подключился к WSO2ESB через прокси WSDL и без проблем. Но когда я попытался называть его либо из SOAP-клиента, либо «попробовал эти службы», встроенного в WSO2ESB, эти службы нельзя вызывать и показывать ошибку:

org.apache.axis2.AxisFault: время ожидания чтения

Можете ли вы помочь мне, что случилось? .. В качестве примечания, это PHP-услуги, идет хорошо, когда вызывается непосредственно из SOAP-клиента, а не через WSO2ESB ..

это мой код служб PHP.

**

<?php //call library require_once ('../nusoap/lib/nusoap.php'); // Create the server instance $server = new soap_server(); // Initialize WSDL support $server->configureWSDL('hellowsdl', 'urn:hellowsdl'); // Register the method to expose $server->register('hello', // method name array('name' => 'xsd:string'), // input parameters array('return' => 'xsd:string'), // output parameters 'urn:hellowsdl', // namespace 'urn:hellowsdl#hello', // soapaction 'rpc', // style 'encoded', // use 'Says hello to the caller' // documentation ); // Define the method as a PHP function function hello($name) { return 'Hellooo, ' . $name; } // Use the request to (try to) invoke the service $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ?> 

**

и клиент выглядит следующим образом.

 <?php require_once ('../nusoap/lib/nusoap.php'); // Create the client instance $wsdl="http://localhost:8280/services/HelloNuSOAP?wsdl"; $client =new nusoap_client($wsdl,true); // Check for an error $err = $client->getError(); if ($err) { // Display the error echo '<h2>Constructor error</h2><pre>' . $err . '</pre>'; // At this point, you know the call that follows will fail } // Call the SOAP method $result = $client->call('hello', array('name' => 'Scott')); // Check for a fault if ($client->fault) { echo '<h2>Fault</h2><pre>'; print_r($result); echo '</pre>'; } else { // Check for errors $err = $client->getError(); if ($err) { // Display the error echo '<h2>Error</h2><pre>' . $err . '</pre>'; } else { // Display the result echo '<h2>Result</h2><pre>'; print_r($result); echo '</pre>'; } } ?> 

со стороны клиентского кода,

 $wsdl="http://localhost:8280/services/HelloNuSOAP?wsdl"; 

это WSDL-адрес от WSO2ESB. Результат, когда мы его назвали, – «запрос тайм-аута» .

Если мы изменим это с прямым адресом WSDL с сервера служб, на котором размещен код службы, скажем,

  $wsdl="http://localhost/ws/hello_serper_nusoap.php" 

в результате сервер будет вызван успешно, и мы получим результат .

Таким образом, мы можем сделать вывод о том, что WSO2ESB не может назвать эти веб-службы PHP. Есть ли способ вызвать веб-службы php на WSO2ESB?

Вау .. я решил проблему выше ..!

единственная причина в том, что мои службы PHP работают на сервере IIS .

Я попытался изменить свой сервер на Apache (с помощью wamp) .. затем получить доступ к нему с SOAPUI через WSO2ESB.

Затем..

Виола … WSO2 ESB прочитал, что службы PHP успешно без проблем. Я должен добавить свой PHP-клиент с расширением PHP cURL для доступа к нему, если будет использоваться клиент PHP.

Я не знаю, что происходит между IIS и WSO2ESB. Надеюсь, он может пригодиться для других.

Спасибо..