Como invocar serviços Web PHP externos com o WSO2 ESB

Olá comunidade WSO2 ESB,

Tenho um serviço em PHP. Eu invocado no WSO2ESB através do proxy WSDL e não tenho problema com isso. Mas, quando tentei chamá-lo de qualquer cliente SOAP ou “tente esses serviços”, construído no WSO2ESB, esses serviços não podem ser chamados e mostrar um erro:

org.apache.axis2.AxisFault: leitura expirou

Você pode me ajudar o que há de errado …? Como uma nota, isso é que os serviços PHP correm bem quando é chamado diretamente do cliente SOAP, e não através do WSO2ESB ..

Este é o meu código de serviços PHP …

**

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); ?> 

**

e o cliente parece esse …

 getError(); if ($err) { // Display the error echo '

Constructor error

' . $err . '

'; // 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 '

Fault

'; print_r($result); echo '

'; } else { // Check for errors $err = $client->getError(); if ($err) { // Display the error echo '

Error

' . $err . '

'; } else { // Display the result echo '

Result

'; print_r($result); echo '

'; } } ?>

por parte do código do cliente,

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

é o endereço WSDL da WSO2ESB. O resultado quando chamamos isso é “tempo limite de solicitação” .

Se mudarmos isso com o endereço WSDL direto do servidor de serviços onde o código de serviços é colocado, digamos

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

O resultado é que o servidor será invocado com sucesso e obteremos um resultado .

Então, podemos concluir que o WSO2ESB não pode chamar esses serviços da Web PHP. Existe alguma maneira de invocar serviços web php no WSO2ESB?

   

Uau … eu resolvi meu problema acima …!

A única causa é porque meus serviços PHP estão sendo executados no servidor IIS .

Tentei mudar meu servidor para o Apache (com wamp) .. então acesse-o com SOAPUI através do WSO2ESB.

Então..

Viola … O WSO2 ESB lê os serviços PHP com êxito sem nenhum problema. Eu só deveria adicionar meu cliente PHP com o PHP cURL Extension para acessá-lo se o cliente PHP for usado.

Não sei o que acontece entre o IIS eo WSO2ESB. Espero que possa ser útil para outros.

Obrigado..