Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

166
Views
Servicio externo de Java Axis: problema de deserialización

Me encuentro con un problema muy frustrante. Todas las respuestas XML del servicio se incluyen en el mismo elemento ("respuesta"). Por ejemplo, si inicio sesión, obtendré una "respuesta", no una "Respuesta de inicio de sesión". Si busco algo, también obtendré "respuesta", no "respuesta de búsqueda".

Todas las respuestas tienen esta estructura:

 <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <response method="methodName"> <payload> ** other elements** </payload> </response> </S:Body> </S:Envelope>

¿Por qué es esto un problema? Bueno, todas mis clases de proxy esperan que un elemento se deserialice, como tal:

 [System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:xxx-premium#xxxLogin", Use=System.Web.Services.Description.SoapBindingUse.Literal,ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)] [return: System.Xml.Serialization.XmlElementAttribute("response", Namespace="")] **random method**

El problema es que, si todos los nombres de los elementos tienen el mismo nombre, obtendré una excepción como:

InvalidOperationException: el elemento XML superior 'respuesta' del espacio de nombres 'hace referencia a tipos distintos

Tiene sentido, ya que este mecanismo utiliza la reflexión. La respuesta XML tampoco tiene espacio de nombres.

Para su información: usé el antiguo wsdl.exe (referencia web) ya que usar Svcutil no funcionó.

Al ejecutar pruebas de aserción en SoapUI, también recibí un mensaje de "cumplimiento de esquema: FALLIDO".

Obviamente, cambiar el nombre en el código proxy hará que la respuesta sea nula.

¿Hay una solución a esto o la única opción es contactar al proveedor para cambiar su pesadilla de un servicio?

over 4 years ago · Santiago Trujillo
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!