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..
- Multiplica os resultados da function em PHP
- Zoopla Sandbox com erro de header HTTP cURL
- Como faço para obter o URL de raiz do site?
- como enviar solicitação HTTP pelo método GET em PHP para outro site
- Excluindo várias linhas usando checkboxs de seleção, PHP e MySQL
- Verifique as dimensões da imagem (altura e largura) antes de fazer o upload da imagem usando o PHP
- Como reutilizar uma instância do navegador do teste Dusk?
- Função de wordwrap () de vários bytes segura para UTF-8