2010-04-29 4 views
0

Je suis nouveau sur webservices, J'ai créé un service web basique de stockmarket, j'ai créé avec succès le script de serveur pour cela et l'ai placé dans mon serveur, maintenant j'ai creted un script clent et y ai accédé hruogh le même serveur .. Est-ce valide? les fichiers boh peuvent-ils être accessibles depuis le même serveur? ou dois-je les placer dans des serveurs différents? Si oui Alors Y? Si non, pourquoi puis-je obtenir la page blanche? J'utilise la bibliothèque nusoap pour le webservice.Erreur de service Web

Quand j'utilise mon script cleint de ma machine locale je reçois ces erreurs

"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 au serveur

<?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."; 
?> 

s'il vous plaît aider. ..

+0

php ne peut pas charger le fichier nusoap.php, essayez un chemin absolu à votre nusoap/fichier libnusoap.php. – Alex

Répondre

1

S'il vous plaît poster un morceau de code source.

Oui, vous pouvez accéder à votre service Web à partir d'un client qui se trouve également sur le même serveur.

Pour tester les services Web, je recommande SoapUI, qui est disponible pour toutes les plates-formes.

Je recommande d'utiliser l'extension soap de php puis nusoap, c'est une bibliothèque plutôt ancienne.

+0

U signifie pour dire que la même machine peut travailler pour moi n'est-ce pas? –

+0

oui c'est vrai. – Alex

1

Je suis vraiment très nouveau à PHP mais j'ai trouvé la même erreur quand je travaillais avec nusoap. ce que j'ai compris que dans php 5 vous ne pouvez pas affecter la valeur de retour de nouvel objet en utilisant le référencement (en utilisant l'opérateur &) si simplement ... Supprimer: D ... Je l'ai fait je l'ai travaillé.

1

pour lancer un client de savon avec la nouvelle version php 5x - il y a un conflit avec la bibliothèque de savon PHP5 et la bibliothèque NuSoap.

télécharger la dernière bibliothèque nusoap.php pour la version PHP 5.3.x (vous pouvez obtenir auprès de sourceforge)

Modifier l'appel de classe suivante dans votre client:

$c = new soapclient 

à

$c = new nusoap_client 

Vous pouvez également ajouter ce qui suit à votre fichier ini PHP.

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