Como consumir webservice com Javascript

3 respostas Resolvido
webservicejavascriptphp
Fabricio_Franco
Estou com a seguinte situação: tenho uma aplicação web (rodando em um desktop, implantada no glassfish), e preciso comunicar com uma outra aplicação web em outro host na mesma rede. Ok, criei o servidor no host que irá receber e os métodos. Mas preciso acessá-los quando for clicar em um botão de acionamento.

Ele enviará uma mensagem (que aparecerá na tela do servidor), e o cliente comsumidor irá receber todos os dados confirmando.

Meu código js (estou usando jquery soap):

` $( a#novo ).on( click, function() {

console.log( novo pedido );
$.soap({
        url: 'http://localhost:8080/ClienteMesas/WSClient',
        method: 'novopedido',
        
        data: {
                mesa: 1,
                pedido: '1 suco de laranja'
        },

        success: function (soapResponse) {
                // do stuff with soapResponse
                // if you want to have the response as JSON use soapResponse.toJSON();
                // or soapResponse.toString() to get XML string
                // or soapResponse.toXML() to get XML DOM
                
                soapResponse.toString();
                
        },
        error: function (SOAPResponse) {
                // show error
                alert(SOAPResponse.toString());
        }
    });
    
});`

Testei e está dando not found (404). Qual a url correta? Tem como fazer isso com js, uma chamada de um web service criada em Java via Js ? Ou tem algum proxy,

Meu Web Service:

`@WebService(serviceName = WSClient)

public class WSClient {
/**
 * Operação de Web service
 */
@WebMethod(operationName = "novopedido")
@GET   
@Produces("application/json")   
public String novopedido(@WebParam(name = "mesa") int mesa, @WebParam(name = "pedido") String pedido) {
    //TODO write your implementation code here:
    
    
    return "Pedido realizado com sucesso para mesa: "+mesa+", Descrição: "+pedido;
}

}
`

Obrigado desde já.

3 Respostas

B

qual o ip da máquina que está o glassfish?

Fabricio_Franco

É um ip de rede local classe C: 192.168.1.102 porta 4848. Nele eu configurei até o acesso remoto, consigo acessar e fazer de qualquer dispositivo na rede. Eu só não sei o que eu boto na url do Soap Ajax como eu lhe mostrei.
Porque pelo que eu li, quem faz o direcionamento ( a descrição) é o WSDL, não? Não pensei em outra possibilidade. Talvez eu poderia fazer com sockets, mas ai eu iria ficar dependente de linguagem. Como o Soap e formato aberto, eu preferi.

B
Solucao aceita

então faça assim http://192.168.1.102:4848/ClienteMesas/WSClient

quando vc pôe “localhost” é o mesmo q vc dizer: 127.0.0.1 e esse é o ip “local” ou seja sua própria máquina ou host

Criado 8 de dezembro de 2017
Ultima resposta 31 de dez. de 2017
Respostas 3
Participantes 2