Джерси - 405 метод не разрешен - PullRequest
0 голосов
/ 25 сентября 2018

Я новичок в веб-службах.У меня есть рабочая конечная точка, которая возвращает мне JSON с данными о человеке, если параметры (идентификатор и пароль) указаны правильно.

Например:

http://www.issdigitalthe.com.br/controleacesso/servico/api/login/4/SMT/000000000000/password/false

Где 000000000000 - мой идентификатор, а «пароль» - мой пароль.

Тестирование с помощью PostMan (POST), это мое возвращение:

"id": 40001002131,
    "idOriginal": 123131,
    "cpfCnpj": "000000000",
    "nome": "JOHN DOE",
    "idCargo": 131313131,
    "descricaoCargo": "Usuário responsável por analisar e Deferir/Indeferir os Protocolos.",
    "idDepartamento": 4000200000000761,
    "descricaoDepartamento": "Departamento para usuários ",
    "login": "000000000",
    "email": "john@gmail.com",
    "ultimoAcesso": 1537824078846,
    "certificadoDigital": "N",
    "dataCriacao": null,
    "bairro": "Bairro",
    "cep": "64020340",
    "complemento": "Quadra 00 Casa 111",
    "dddCelular": "86 ",
    "dddTelefone": "86 ",
    "celular": "99999999",
    "telefone": "86 ",
    "uf": "PI",
    "municipio": "SÃO PAULO",

Мне нужно использовать этот сервис, чтобы проверить, верен ли возврат или нет.Вот мой код:

import javax.faces.bean.ManagedBean;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;

@Path("/")
@ManagedBean
public class WebServiceLoginMB {

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON + MediaType.TEXT_HTML)

    public String getDados() {
        Client c = Client.create();
        WebResource wr = c.resource("//www.issdigitalthe.com.br/controleacesso/servico/api/login/4/SMT/000000000000/password/false);
        return wr.get(String.class); 
      }
}

Сначала я просто пытался увидеть возврат на моей консоли Glassfish, а затем я проверял, верен ли возврат или нет.Но я всегда получаю "возвращенный статус ответа метода 405. Метод не разрешен".

Это сработало так:

    public static void ws(String user, String pass) {

        try {

            Client client = Client.create();
            WebResource webResource = client.resource(
"http://www.issdigitalthe.com.br/controleacesso/servico/api/login/4/SMT/"+ user + "/"+ pass + "/false");
            ClientResponse response = webResource.type("application/json").post(ClientResponse.class);

            String output = response.getEntity(String.class);
            Gson gson = new Gson();
            PessoaNota pessoa = gson.fromJson(output, PessoaNota.class);
            System.out.println(pessoa.getNome());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

Я знаю, что все еще нужно кое-что отрегулировать, ноПервая проблема была решена.Спасибо всем, кто помог.

1 Ответ

0 голосов
/ 25 сентября 2018

Вы получаете эту ошибку, потому что вы выполняете вызов HTTP GET, в то время как в почтальоне вы пробовали HTTP POST.Попробуйте сделать такой звонок как этот

public String getDados() {
    Client c = Client.create();
    WebResource wr = c.resource("http://www.issdigitalthe.com.br/controleacesso/servico/api/login/4/SMT/000000000000/password/false);
    return wr.post(String.class); 
  }
...