Tengo que hacer uso de un servicio web que solo recibe un dato; este dato está definido en el WSDL como string y tiene formato xml.
El problema es que a pesar de haber repasado el guión xml a pasar y los datos con la persona que lleva el server siempre me retorna el mismo error.
Este es más o menos el error que me sale con el Data::Dumper y CGI::Carp qw(carpout):
- Código: Seleccionar todo
er</faultcode><faultstring>Exception during processing: javax.xml.soap.SOAPException: Found SOAPElement [ ..... ]
But was not able to find a Part that is registered with this Message which corresponds to this SOAPElement. The name of the element should be one of these[string]
at weblogic.webservice.core.DefaultMessage.toJava(DefaultMessage.java:47
8)
at weblogic.webservice.core.handler.InvokeHandler.handleRequest(InvokeHa
ndler.java:93)
at weblogic.webservice.core.HandlerChainImpl.handleRequest(HandlerChainI
mpl.java:143)
at weblogic.webservice.core.DefaultOperation.process(DefaultOperation.ja
va:535)
at weblogic.webservice.server.Dispatcher.process(Dispatcher.java:204)
at weblogic.webservice.server.Dispatcher.doDispatch(Dispatcher.java:176)
at weblogic.webservice.server.Dispatcher.dispatch(Dispatcher.java:96)
at weblogic.webservice.server.WebServiceManager.dispatch(WebServiceManag
er.java:100)
at weblogic.webservice.server.servlet.WebServiceServlet.serverSideInvoke
(WebServiceServlet.java:297)
at weblogic.webservice.server.servlet.ServletBase.doPost(ServletBase.jav
a:485)
at weblogic.webservice.server.servlet.WebServiceServlet.doPost(WebServic
eServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:1006)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:315)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:6718)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:3764)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2644)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
El caso es que en el string que el debug me muestra, los tag '<' están ya convertidos a <.
- Código: Seleccionar todo
SOAP::Transport::HTTP::Client::send_receive: POST https://mi_url?wsdl
Accept: text/xml
Accept: multipart/*
Content-Length: 917
Content-Type: text/xml; charset=utf-8
SOAPAction: "https://mi_url/ws#mi_metodo"
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>
<SOAP-ENV:Body><namesp1:miMetodo xmlns:namesp1="https://Mi_url/ws">
<c-gensym3 xsi:type="xsd:string">
<message id='prueba OTP' ts='0'>
<head>
<type ref='sms'>
¿Creéis que puede ser por esa conversión?
¿Sabéis por qué y cómo solucionarlo?
Muchas gracias aunque sea por leer e intentar comprender esta duda. Saludos.