En el proceso de hacer esto me he encontrado con problema que detallo a continuación..
Para el trato del webservice utilizo nusoap 0.9.5.
A continuacion les copio el trozo del wsdl donde esta declarado el método que quiero llamar..
"
<xs:complexType name="autenticar">
<xs:sequence>
<xs:element minOccurs="0" name="credenciales" type="tns:credenciales"/>
<xs:element minOccurs="0" name="aplicacion" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="credenciales">
<xs:sequence>
<xs:element minOccurs="0" name="password" type="xs:string"/>
<xs:element minOccurs="0" name="user" type="xs:string"/>
</xs:sequence>
</xs:complexType>
"
El metodo es "autenticar".. y segun entiendo y veo.. tiene dos parametros.. 1. credenciales.. que es un array que esta mas abajo.. y el 2. es aplicacion.. que es de tipo string..
Mi codigo PHP es el siguiente..
"
<?php
// Incluimos la biblioteca de NuSOAP
require_once('..\nusoap\lib\nusoap.php');
// Crear un cliente apuntando al script del servidor (Creado con WSDL) -
$serverURL = 'http://192.168.XXX.X:xxxx';
$serverScript = 'ConsultaServiceEJB';
// Crear un cliente de NuSOAP para el WebService
$cliente = new nusoap_client("$serverURL/$serverScript?wsdl", 'wsdl');
// Verificamos si se pudo conectar..
$error = $cliente->getError();
if ($error) {
echo '<pre style="color: red">' . $error . '</pre>';
echo '<p style="color:red;'>htmlspecialchars($cliente->getDebug(), ENT_QUOTES).'</p>';
die();
}
$credenciales = array('user' => 'usuario', 'password' => 'contra');
$autenticar = array('credenciales' => $credenciales, 'aplicacion' => 'Thunderbird');
// 1. Llamar a la funcion autenticar del servidor
$result = $cliente->call('autenticar', $credenciales);
// Verificacion que los parametros estan ok, y si lo estan. mostrar respuesta.
if ($cliente->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
} else {
$error = $cliente->getError();
if ($error) {
echo '<b style="color: red"><h2>Error</h2><pre>'. $error .'</pre></b>';
} else {
echo '<b style="color: green"><h2>Respuesta</h2><pre>'. $result .'</pre></b>';
}
}
?>
"
El error que me aparece es Array Fault... al validar el estado de la llamada.. mas especificamente esto..
"
Fault
Array
(
[faultcode] => env:Server
[faultstring] => java.lang.NullPointerException
)
"
Espero haber sido claro.. y estaria muy agradecido si me pueden dar una ayuda con este problema..
Saludos..