JAX-RS POST метод 415 Неподдерживаемый тип носителя

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

У меня работает сервер JAX-RS:

GET метод работает. POST метод не.

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response post(Movie movie){
    System.out.println("In the POST method");

    String result = movie.toString();

    return Response.status(201).entity(result).build();

В моем Oracle JET Client я хочу сделать сообщение:

addMovie = function(){
    console.log("post sent");
      $.ajax({
        type: "POST",
        url: "http://localhost:8080/MovieRestService/resources/movies",
        headers: {

            "Content-Type": "application/json"
        },           
        data:  
                    {
                        id: 2,
                        name: "test",
                        director: "test",
                        year: 234
                    },
        success: "success",
        dataType: 'application/json'
      });

Это продолжает давать мне 415 Unsupported Media Type ошибка. Что-то, что кажется мне немного странным, это то, что в заголовке ответа тип контента text/html Content-Type: text/htlm

У кого-нибудь есть решение?

РЕДАКТИРОВАТЬ:

После долгих поисков в сети мне, наконец, удалось выяснить, в чем реальная проблема... Похоже, что в Glassfish 4.1.1 есть ошибка, которая вызвала проблемы при создании сообщения на моем сервере...

1 ответ

Решение

Это должно работать

    var url = 'http://localhost:8080/MovieRestService/resources/movies';
    var sucessCallback = function(response) {...}
    var data = JSON.stringify({
                    id: 2,
                    name: "test",
                    director: "test",
                    year: 234
                });
    $.ajax({
        url: url,
        method: POST,
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        data: data,
        cache: false,
        context: this,
    }).success(sucessCallback);
Другие вопросы по тегам