NuSOAP PHP Web Hizmeti

6 Cevap php

Java yerleşik bir Web Hizmeti tüketmeye çalışın NuSOAP kullanıyorum. Ben şimdiye kadar bu kodu vardır:

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

web sayfası yüklenir aldığında ama ben bile kod boş bir sayfa bir şey olsun ve ben gerçekten neden bilmiyorum. Ben yanlış bir şey yapıyorum?

6 Cevap

NuSOAP çok yaygın bir PHP SOAP kütüphanesi olmasına rağmen, bence PHP4 uygulamalarda ana kullanmak bulunuyor. PHP5 (derlenmiş bir uzantısı olduğundan) daha hızlı olan yerleşik bir SOAP uzantısı vardır çünkü. Ben de Zend Framework SOAP kütüphanesi kullanmanızı öneririz. ama ben (Java uygulamaya bana göre yazılı değil) bazı web servisini kullanmak istedi ve bu SOAP istemciler hiçbiri çalıştı, ancak NuSOAP hatırlıyorum. ve ben gerçekten neden çözemedim.

Neyse, burada tekrar o web servisini kullanmak için yaptığı şey:

$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
}

Don't use NuSoap. PHP has had a native soap client since version 5

PHP5 üzerinde NuSOAP kullanarak tutmak için bazı iyi nedenleri vardır:

  • NuSOAP generate a list of methods when you GET the page
  • NuSOAP generate the WSDL "on the fly" a really useful feature that is not provided by native implementation of SOAP in PHP 5

NuSOAP kullanmayın. PHP çok daha istikrarlı, daha hızlı olmanın yanı sıra bir sürüm 5, beri native soap client olmuştur.

Web sayfası ben boş bir sayfa bir şey olsun yüklü alır .. ne zaman ..

Muhtemelen ölümcül bir hata var. Neyin yanlış gittiğini görmek için hata günlüklerini kontrol etmeyi deneyin. Veya display_errors = on set

Evet, yanlış bir şey yapıyoruz. Bu boş bir sayfaya dayanan bilmek zor, ama ben geçerli PHP gibi görünmüyor bu hat ile başlamak istiyorum:

$ Param = 'John'; # array ('name' => 'John');

"#" PHP bir yorum başlamıyor; "/ /" Yapar

Sabitleme hala boş bir sayfa ile sonuçlandığı takdirde, hata raporlama açmak ve / veya tam olarak ne oluyor görmek için boyunca daha fazla çıktı ekleyin.

Tarayıcınızda sunucu tarafından oluşturulan HTML kontrol edin. Benim durumumda, sonuç XML etiketleri içeriyordu, böylece tarayıcı düzgün bilgileri görüntülemek olamazdı.

Ben sadece aynı sorunla karşı karşıya idi.

include_once yerine kullanılması require_once boş sayfa sorunu çözüldü. Bu tabii ki mükemmel bir çözüm değil, çünkü bu: When should I use require_once vs include?