Pregunta

Estoy tratando de hacer mi primer cliente de servicio web para la API de eBay usando el asistente del nuevo cliente de servicio web de NetBeans y el WSDL encontrado here . Mi entendimiento es que esto está usando JAX-WS para generar archivos de clase, y todas mis solicitudes son SOAP.

Todo parece funcionar bien, excepto cuando intento ejecutar una solicitud, eBay responde con un 404, que parece ser su respuesta estándar si la llamada no tenía sentido.

Wireshark muestra mi solicitud como:

<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<FindItemsRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<QueryKeywords>dvd players</QueryKeywords>
</FindItemsRequest></S:Body></S:Envelope>

Pero la herramienta de prueba API de eBay dice que debería verse así:

<?xml version="1.0" encoding="utf-8"?>
<FindItems xmlns="urn:ebay:apis:eBLBaseComponents">
<QueryKeywords>dvd players</QueryKeywords>
</FindItems>

Por lo tanto, NetBeans ha completado mi solicitud con lo que solo puedo asumir es una estructura SOAP estándar, y agrega 'Solicitud' al nombre de la llamada.

¿De dónde obtiene este espacio de nombres de "sobre" y por qué eBay no lo usa? ¿Y cómo puedo decirle a NetBeans lo que realmente quiero que haga?

También me pregunto cuál es el beneficio para el SDK de eBay sobre este método (si funcionó).

¿Fue útil?

Solución

Me las arreglé para averiguarlo y, como de costumbre, me arrepiento de no haber leído los documentos API a fondo.

La API de eBay espera que se establezcan ciertos encabezados HTTP antes de que proporcione algo más que un 404.

Después de eso, la solicitud SOAP que NetBeans encontró fue interpretada correctamente por eBay y los resultados esperados regresaron.

Valores del encabezado HTTP API de eBay

Guía de usuario de JAX-WS: configuración de encabezados HTTP

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top