Web服务错误

时间:2010-04-29 05:26:02

标签: php web-services nusoap

我是webservices的新手, 我已经创建了一个基本的股票市场web服务,我已经成功地为它创建了服务器脚本并将其放在我的服务器中,现在我还创建了一个简洁的脚本并在同一服务器上访问它。它是否有效?可以从同一台服务器加入boh文件吗?或者我必须将它们放在不同的服务器中?如果是,那么Y?如果否,那么为什么我会得到空白页? 我正在使用nusoap库进行webservice。

当我在本地机器上使用我的cleint脚本时,我会收到这些错误

  

“已弃用:指定退货   新的参考价值是   不推荐使用   d:\ WAMP \ WWW \ pranav_test \的NuSOAP \ LIB \ nusoap.php   在线6506

     

致命错误:类'soapclient'没有   在发现   d:\ WAMP \ WWW \ pranav_test \ stockclient.php   在第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.";
?>

请帮忙......

3 个答案:

答案 0 :(得分:1)

请发布一段源代码。

是的,您可以从也位于同一服务器上的客户端访问您的Web服务。

对于测试网络服务,我建议SoapUI,它适用于所有平台。

我建议使用php的soap扩展,然后使用nusoap,这是一个相当古老的库。

答案 1 :(得分:1)

我对PHP非常新,但在使用nusoap时我发现了同样的错误。 我明白在php 5你不能使用引用(使用&amp;运算符)分配新对象的返回值,所以简单...删除它:D ... 我做到了,我工作了。

答案 2 :(得分: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