2010-04-29 87 views
0

我是新來的webservices, 我已經創建了一個基本的股市web服務,我已經成功地爲它創建了服務器腳本,並將其放置在我的服務器中,現在我還創建了一個clent腳本並訪問它hruogh相同的服務器..它有效嗎? boh文件可以從同一臺服務器上傳輸嗎?還是必須將它們放在不同的服務器中?如果是的話那麼Y?如果否,那麼爲什麼我會得到空白頁? 我正在使用nusoap庫進行webservice。Webservice錯誤

當我用我的cleint腳本從我的本地機器我得到這些錯誤

"Deprecated: Assigning the return value of new by reference is deprecated in D:\wamp\www\pranav_test\nusoap\lib\nusoap.php on line 6506

Fatal error: Class 'soapclient' not found in D:\wamp\www\pranav_test\stockclient.php on line 3"

stockserver.php在服務器

<?php 
function getStockQuote($symbol) { 
mysql_connect('localhost','root','******'); 
mysql_select_db('pranav_demo'); 
$query = "SELECT stock_price FROM stockprices " 
. "WHERE stock_symbol = '$symbol'"; 
$result = mysql_query($query); 
$row = mysql_fetch_assoc($result); 
return $row['stock_price']; 
} 
require('nusoap/lib/nusoap.php'); 
$server = new soap_server(); 
$server->configureWSDL('stockserver', 'urn:stockquote'); 
$server->register("getStockQuote", 
array('symbol' => 'xsd:string'), 
array('return' => 'xsd:decimal'), 
'urn:stockquote', 
'urn:stockquote#getStockQuote'); 
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) 
? $HTTP_RAW_POST_DATA : ''; 
$server->service($HTTP_RAW_POST_DATA); 
?> 

stockclient.php

<?php 
require_once('nusoap/lib/nusoap.php'); 
$c = new soapclient('http://192.168.1.20/pranav_test/stockserver.php'); 
$stockprice = $c->call('getStockQuote', 
array('symbol' => 'ABC')); 
echo "The stock price for 'ABC' is $stockprice."; 
?> 

請幫助。 ..

+0

php無法加載文件nusoap.php,嘗試絕對路徑到您的nusoap/libnusoap.php文件。 – Alex 2010-04-29 06:44:13

回答

1

請發佈一段源代碼。

是的,您可以從位於同一服務器上的客戶端訪問您的Web服務。

對於測試web服務,我建議SoapUI,它適用於所有平臺。

我推薦使用php的soap擴展構建然後nusoap,它是一個相當老的庫。

+0

U的意思是說同一臺機器可以爲我工作不是嗎? – 2010-04-29 05:37:09

+0

是的,這是正確的。 – Alex 2010-04-29 06:42:22

1

我對PHP真的很新,但是我在使用nusoap時發現了同樣的錯誤。 我明白,在PHP 5中,你不能指定使用引用(使用&運算符)的新對象的返回值,所以很簡單...刪除它:D ... 我做到了,我工作。

1

用新的PHP版本5x啓動soap客戶端 - 與PHP5 soap庫和NuSoap庫有衝突。

下載PHP版本5.3.x的最新nusoap.php庫(你可以從SourceForge得到這個)

更改以下級呼叫在您的客戶端:

$c = new soapclient 

$c = new nusoap_client 

您可能還想將以下內容添加到您的PHP ini文件中。

[nusoap_deprecated] 
; Turn off deprecated messages on rendered pages 
error_reporting = E_ALL & ~E_DEPRECATED