Foros del Web » Programando para Internet » PHP »

Error en ejemplo de soap con php5

Estas en el tema de Error en ejemplo de soap con php5 en el foro de PHP en Foros del Web. Buen dia, de antemano gracias por la antencion y/o colaboracion. Estoy explorando sobre soap con php5 y estoy elaborando un programa, este es el programa. ...
  #1 (permalink)  
Antiguo 04/01/2011, 21:36
 
Fecha de Ingreso: marzo-2003
Mensajes: 164
Antigüedad: 17 años, 2 meses
Puntos: 0
Error en ejemplo de soap con php5

Buen dia, de antemano gracias por la antencion y/o colaboracion.

Estoy explorando sobre soap con php5 y estoy elaborando un programa, este es el programa.

$wsdl = "http://www.webservicex.net/globalweather.asmx?wsdl";
$Soap = new SoapClient($wsdl);
//1ro
echo "<pre>";
print_r ($Soap->__getFunctions());
echo "</pre>";
//2do
echo "<pre>";
print_r ( $Soap->GetWeather("medellin","colombia"));
echo "</pre>";

-En el primer print el me muestra las funciones del webservice y este funciona bien.
-En el 2do print el llama una de las funciones con unos parametros, pero en este me sale el siguiente error.

Fatal error: Uncaught SoapFault exception: [soap:Server] System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Data.SqlClient.SqlException: Procedure or function 'getWeather' expects parameter '@CountryName', which was not supplied.
at System.Data.SqlClient.SqlConnection.OnError(SqlExc eption exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnErro r(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndW arning()
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.FinishExecuteRead er(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderT ds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClie in C:\AppServ\www\Wsphp5\Ws1.php on line 11

Alguien me podria guiar con este error

de nuevo gracias por la atencion y colaboracion prestada.
  #2 (permalink)  
Antiguo 04/01/2011, 21:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 12 años, 1 mes
Puntos: 2534
Respuesta: Error en ejemplo de soap con php5

los mensajes de error no son en balde, siempre te indican la causa del problema...
Cita:
Procedure or function 'getWeather' expects parameter '@CountryName', which was not supplied.
creo que deberías tomarte tu tiempo y estudiar la forma en que funcionan los métodos de dicho servicio que consultas, porque al parecer estas omitiendo las convenciones del mismo... (:

si modificaste algo sin saber lo que hacías pues que mal hábito, ¿verdad?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/01/2011, 22:06
 
Fecha de Ingreso: marzo-2003
Mensajes: 164
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Error en ejemplo de soap con php5

Gracias por la atencion, pues ya me tome la molestia de leer bastante del tema, no creo que lo suficiente pues con lo que he leido no aun no encuentro la solucion.
utilize el programa soapUI 3.0.1 para llamar este metodo y funciona bien con los parametros enviados, pero no se enque estoy fallando.

de neuvo gracias
  #4 (permalink)  
Antiguo 04/01/2011, 22:14
 
Fecha de Ingreso: marzo-2003
Mensajes: 164
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Error en ejemplo de soap con php5

Con esto lo puede solucionar, toca definir un vector para pasar los parametros.
$parametros=array(); //parametros de la llamada
$parametros["CityName"]="medellin";
$parametros["CountryName"]="colombia";

$wsdl = "http://www.ebi.ac.uk/Tools/webservices/wsdl/WSDbfetch.wsdl";
$wsdl = "http://www.webservicex.net/globalweather.asmx?wsdl";
$Soap = new SoapClient($wsdl,$parametros);

//1ro
echo "<pre>";
print_r ($Soap->__getFunctions());
echo "</pre>";
//2do
echo "<pre>";
print_r ( $Soap->GetWeather($parametros));
echo "</pre>";

Etiquetas: ejemplo, soap
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:11.