2016-06-06 3 views
1

Я знаю, что есть некоторые темы с тем же вопросом, однако я не запускаю его правильно. Я все еще очень новичок в этом.Метод JAX-RS POST 415 Неподдерживаемый тип носителя

У меня есть сервер под управлением RS-JAX:

В 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

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

EDIT:

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

+0

параметр Try '' CONTENTTYPE: 'приложения/JSON', DATATYPE: «json''' – gmaslowski

+0

@gmaslowski не работает для меня. Все равно получите ту же ошибку – RSSD

ответ

0

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

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); 
+0

Когда я использую это, это рассматривается как метод «GET». Он возвращает все записи из базы данных – RSSD

+0

Извините, я забыл добавить метод Post. –

+0

Да, я уже добавил это вручную, однако он все равно бросает ту же ошибку. – RSSD

Смежные вопросы