Веб-служба Java-Джерси: запрос JSON

У меня есть веб-сервис с Java и Джерси. Я хочу получить запрос JSON и проанализировать JSON для сохранения значений в JSON в базе данных.

Это код веб-службы:

@Path("companies")
public class Companies {

    @Path("add")
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public JSONObject addCompanies(JSONObject inputJsonObj){

        String input = (String) inputJsonObj.get("company");
        String output = "The input you sent is :" + input;
        JSONObject outputJsonObj = new JSONObject();
        outputJsonObj.put("output", output);

        return outputJsonObj;
    }
}

Клиентская часть сделана с AngularJS:

$scope.company = "";
    $scope.submit = function(){
        // Writing it to the server
        //      
        var dataObj = {
                company : $scope.company
        };  
        var res = $http.post('http://localhost:8080/WS-Test2/crunchify/companies/add', dataObj);
        res.success(function(data, status, headers, config) {
            $scope.message = data;
            notify("succes");
        });
        res.error(function(data, status, headers, config) {
            //alert( "failure message: " + JSON.stringify({data: data}));
            notify("fail");
        });
    };

Это ошибка, которую я получаю, когда передаю JSON веб-службе:

Status Code:415

И это запрос, который я отправляю:

{"company":"Testing2"}

Это моя вкладка Сеть:

1 ответ

Решение

Без дальнейшей настройки, JSONObject Джерси не поддерживает Вам просто нужно будет работать со строками

public String addCompanies(String json){
    JSONObject inputJsonObj = new JSONObject(json)

    String input = (String) inputJsonObj.get("company");
    String output = "The input you sent is :" + input;
    JSONObject outputJsonObj = new JSONObject();
    outputJsonObj.put("output", output);

    return outputJsonObj.toString();
}

Если вы действительно хотите использовать JSONObject Вы можете проверить этот пост.

Смотрите также:

  • JAX-RS Entity Provider, чтобы узнать, как Джерси обрабатывает сериализацию и десериализацию.
Другие вопросы по тегам