[RESOLVIDO] Requisição AJAX retornando erro 415

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?

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.

1 curtida

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>
1 curtida