[RESOLVIDO] Requisição AJAX retornando erro 415

2 respostas Resolvido
Sandro_Machado

Ola galera

Sou novato no desenvolvimento WEB e estou com um pequeno problema

criei um Webservice em Java com apenas um método para teste que soma dois valore recebidos por parâmetros da requisição. segue ele:

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;

@WebService(serviceName = "WSProtocolo")
public class WSProtocolo {

@WebMethod(operationName = "soma")
public Integer soma(@WebParam(name = "x") Integer x, @WebParam(name = "y") Integer y) {
    System.out.println("Funcionou");
    return x + y;
}

}

e Aqui o Ajax que faz a requisição:

$.ajax({
    type: "POST",
    url: "WSProtocolo?wsdl/soma",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    async: true,
    data: JSON.stringify({parametro1: 25, parametro2: 5}),
    success: function (data) {
        alert(data + ", Sucesso!");
    }
});

no Debug do chrome ele só retorna o erro 415 (Unsupported Media Type)

alguém saberia me dizer oque está errado?

2 Respostas

Lucas_Camara
Solucao aceita

Acredito que esse erro seja pq você está tentando acessar um ws soap (JAX-WS) e não ws rest (JAX-RS). E, pesquisando aqui, parece que tem q fazer umas coisas para fazer funcionar.

Veja: https://stackoverflow.com/a/2766156

Como nunca precisei acessar um ws soap via ajax, não sei exatamente como fazer para funcionar.

raphaeloneves

Webservices baseados em SOAP tem um padrão de acesso diferente de webservices REST. No caso, você precisa elaborar um envelope ao qual é composto de elementos obrigatórios e opcionais. Os obrigatórios são header e body, que represente o payload da mensagem.

No seu caso, vc avisa que vai consumir a operação soma do contrato wsdl, mas não especifica o payload correto no formato supracitado.

Um exemplo de envelope seria:

<SOAP-ENV:envelope>
<!— Elemento raiz do SOAP e define que essa é uma mensagem SOAP–>
<SOAP-ENV:header>
<!—Especifica informações especificas como autenticação (opcional)–>
</SOAP-ENV:header>
<SOAP-ENV:body>
<!—O elemento BODY contém o corpo da mensagem–>
<SOAP-ENV:fault>
<!—O elemento FAULT contém os erros que podem ocorrer–>
</SOAP-ENV:fault>
</SOAP-ENV:body>
</SOAP-ENV:envelope>
Criado 30 de maio de 2017
Ultima resposta 12 de jun. de 2017
Respostas 2
Participantes 3