Pergunta

Estou desenvolvendo serviços web Java (JAX-WS) para inserir dados no mysql DB e recuperá-lo. Este serviço web tem dois métodos ou seja fetchFromDB e insertIntoDB. Serviços parece estar a correr bem quando eu testá-los usando o NetBeans IDE.

Address: /CalculatorWSService
WSDL:    /CalculatorWSService?wsdl

mas quando tento acessá-lo usando objeto XMLHttpRequest do AJAX, fornecendo url http: // localhost: 8080 / CalculatorApp / CalculatorWSService . Não é capaz de acessá-lo. Eu desenvolvi serviços C # web e ele foi tão fácil de acessá-los com uma URL, mas java web services não parecem seguir isso.

A minha pergunta é

O url usar para acessar as operações de serviços web em AJAX? (Do que eu preciso usar? Wsdl "na url? Existe uma biblioteca ajax javascript para facilmente acessar serviços Web JAX-WS? serviços web Apache Axis são a melhor escolha sobre o JAX-WS? Por favor me ajude, obrigado, Jay

Foi útil?

Solução

Eu estava tendo o mesmo problema de vocês, não poderia invocar um serviço web JAX-WS de Javascript, mas eu encontrei uma maneira de fazer isso.

A URL a ser usada pode ser seu mesmo (EndpointAddress) " http: // localhost: 8080 / CalculatorApp / CalculatorWSService "

mas quando você cria o objeto XMLHttpRequest de javascript você tem que:
* Use o método POST para abrir o URL, eu tentei com GET, mas não funcionou para mim.
* Defina o SOAPAction Request Header ao de seu wsdl, mesmo que a sua vazia "".
* Tenha muito cuidado com o corpo da solicitação para enviar, o sabão envelope deve estar correto.

espero que isso pode ajudá-lo!.

Bye.
Paul Manjarres.

Outras dicas

Do ponto de vista do cliente, eu não estava esperando diferenças significativas entre o Eixo e JAX-WS. Tudo o que o cliente precisa deve ser no WSDL.

Uma coisa que às vezes acontece é que o URL usado ao desenvolver um webservice referências ao acolhimento develpoment e portuárias (e talvez até mesmo o contextroot) Quando implantado em um servidor em particular qualquer um desses poderia ser mudado. Idealmente um novo WSDL poderia ser criada com novas informações "ligação".

O meu primeiro passo seria a apontar um navegador diretamente para o serviço Web que você deseja chamar. Em meus ambientes que retorna um agradável "Hi este é um serviço Web" tipo de mensagem. Se você receber 401 erros não encontrados, então você só precisa estudar exatamente como o serviço web foi implantado. Foi um porto ou raiz de contexto diferente especificado?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top