PHP - Webservice SOAP php

 
Vista:
sin imagen de perfil

Webservice SOAP php

Publicado por Alex (3 intervenciones) el 10/08/2017 12:02:00
Hola a todos, necesito vuestras ayuda
Espero que sea el lugar correcto

El caso es que tengo que conectar a un webservice SOAP, usando PHP, y no hay manera... :(

Me han dado la ubicación, que es algo como esto:
http://xxx/xxx/Servicios?wsdl (pongo las xxx por omitir la url real), de la cual tengo un usuario y una contraseña.

Han implementado un método, llamado selectLectores y me dicen que las request son de este tipo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:impl="http://xxxxxxxxx">
        <soapenv:Header>
         <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
           <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
             <wsse:Username>myuser</wsse:Username>
             <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">mypassword</wsse:Password>
           </wsse:UsernameToken>
         </wsse:Security>
       </soapenv:Header>
   <soapenv:Body>
      <impl:selectLectores>
         <arg0>
            <!--Mandatory:-->
            <centro>51000286</centro>
            <!--Optional:-->
            <codigoLector>14103</codigoLector>
         </arg0>
      </impl:selectLectores>
   </soapenv:Body>
</soapenv:Envelope>

El caso es que me intento conectar con php con el siguiente código:

1
2
3
4
5
6
7
8
9
10
$servicio="http://xxx/xxx/Servicios?wsdl";
$parametros=array();
$parametros['centro']=51000286;
$validacion = array(
'Username' => 'myuser',
'Password' => 'mypassword'
);
 
$client = new SoapClient($servicio,$validacion);
$result = $client->selectLectores($parametros);

Pero no me funciona, me devuelve el siguiente error:
500 | Internal Server Error | SoapFault
java.lang.NullPointerException

¿Alguien sabría decirme que estoy haciendo mal, o como debo hacerlo?

Muchas gracias
Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Webservice SOAP php

Publicado por kip (877 intervenciones) el 10/08/2017 16:01:03
Hola, me parece que mas que un error tuyo es un error del servicio SOAP que intentas consumir, ya que ese error:

1
java.lang.NullPointerException

No tiene que ver nada con PHP !

Puedes verificar con los que proveen el servicio que hayan hecho el mantenimiento adecuado ?

Si estoy equivocado, podrias colocar tal vez el screencapture del error o explicar exactamente donde te aparece ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Webservice SOAP php

Publicado por Alex (3 intervenciones) el 11/08/2017 09:35:10
Me dicen que el servicio funciona, y de hecho, parece que conecta porque si cambio el nombre de la fución selectLectores, por selectLector por ejemplo, me dice que la función no existe.

Incluso han mirado sus logs (a los que no tengo acceso) y me dicen que le está llegando vacía la cabecera del xml, es decir, la etiqueta <soapenv:Header>, por eso dice que no puede tener vacío el campo de usuario, que será el primero que valida y da ese error de java

El error me da al pulsar un botón que he creado en mi web, que llama a una función con el código php que he puesto para importar unos lectores.
Te pondría una captura, pero lo único que pone es el error que he puesto antes:
1
2
500 | Internal Server Error | SoapFault
java.lang.NullPointerException
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Webservice SOAP php

Publicado por Alex (3 intervenciones) el 14/08/2017 11:37:34
¿Nadie sabe como enviar esta cabecera?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas
Val: 34
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Webservice SOAP php

Publicado por Vainas (262 intervenciones) el 18/08/2017 12:58:47
Buenas:

Mira esto: https://stackoverflow.com/q/14030228

Debes intentar debuguear las peticiones que se estan enviando a ver si se estan haciendo bien. Veo que el tipo de auth que usas es basic...

Empieza primero preguntando como se autentifican los usuarios en el WS.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar