NetBeans cliente de serviços web produzindo solicitação inválida
Pergunta
Eu estou tentando fazer o meu primeiro cliente do serviço web para o API eBay usando o assistente do NetBeans 'novo Serviço Web Client' eo WSDL encontrados aqui . Meu entendimento é que isso é usando JAX-WS para gerar arquivos de classe, e os meus pedidos são todos SOAP.
Tudo parece funcionar bem, exceto quando tento executar um pedido, responde eBay com um 404 que parece ser a sua resposta padrão se a chamada não fazia sentido para ele.
Wireshark mostra o meu pedido 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>
Mas a ferramenta de teste API eBay dizem que ele deve ser parecido:
<?xml version="1.0" encoding="utf-8"?>
<FindItems xmlns="urn:ebay:apis:eBLBaseComponents">
<QueryKeywords>dvd players</QueryKeywords>
</FindItems>
Assim NetBeans envolveu meu pedido com o que eu só posso supor que é uma estrutura de SOAP padrão, e acrescenta 'Request' para o nome da chamada.
De onde vem este 'envelope' namespace e por que não eBay usá-lo? E como eu posso dizer NetBeans o que eu realmente quero fazer?
Eu também estou querendo saber o que o benefício é para o eBay SDK sobre este método (se ele trabalhou).
Solução
Eu consegui descobrir isso e como de costume eu estou me chutando por não ler a documentação da API completamente.
O eBay API espera certos cabeçalhos HTTP a ser definido antes de dar qualquer coisa diferente de um 404.
Depois disso, a solicitação NetBeans SABÃO veio com foi interpretado corretamente pelo eBay e os resultados esperados retornado.
guia do usuário