Я пытаюсь создать свой первый клиент веб-службы для API eBay, используя мастер создания нового клиента веб-службы NetBeans и найденный WSDL здесь. Насколько я понимаю, это использует JAX-WS для создания файлов классов, и все мои запросы - это SOAP.
Кажется, все работает нормально, за исключением того, что когда я пытаюсь выполнить запрос, eBay отвечает 404, что кажется его стандартным ответом, если вызов не имеет для него смысла.
Wireshark показывает мой запрос как:
<?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>
Но инструмент тестирования eBay API говорит, что это должно выглядеть так:
<?xml version="1.0" encoding="utf-8"?>
<FindItems xmlns="urn:ebay:apis:eBLBaseComponents">
<QueryKeywords>dvd players</QueryKeywords>
</FindItems>
Таким образом, NetBeans обернул мой запрос, как я могу только предположить, некоторой стандартной структурой SOAP, и добавил «Запрос» к имени вызова.
Откуда он берет это пространство имен «конверт» и почему eBay его не использует? И как я могу сказать NetBeans, что я действительно хочу, чтобы он делал?
Мне также интересно, в чем преимущество eBay SDK по сравнению с этим методом (если он сработал).