Java Spring: запрос POST выводит неожиданную ошибку 415 при передаче объекта JSON - PullRequest
0 голосов
/ 28 апреля 2018

Я создаю API, который получает следующие входные данные и обеспечивает следующий вывод. enter image description here

Так что мне нужно иметь функцию для догадок. До сих пор мне не довелось тестировать мой код.

Когда я отправляю сообщение POST (используя POSTMan) как таковое http://localhost:8080/guess с телом {"game":"klubxb", "guess":"a"}. У меня Content-type установлено application/json, а тело raw с {"game":"lmzxmn","guess":"c"}

Это ответ:

{
    "timestamp": "2018-04-28T00:40:29.141+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "No message available",
    "path": "/guess"
}

Функция, которую я определил для догадок:

 @RequestMapping(value = "/guess", method = RequestMethod.POST, consumes = "application/json", produces = "application/json")
    public Game makeGuess(@RequestBody Guess gameAndLetter, HttpSession session) throws GameDoesNotExistException, InvalidCharacterException{
        String game = gameAndLetter.getGame();
        String guess = gameAndLetter.getGuess();
        Game g = getGame(game,session);

        String gameId = g.getId();
        if(gameId.equals(game) && guess.length() > 0) {
            boolean correct = compareWords(guess, g);
            if(!correct){
                g.incIncorrect_guesses();
            }
            g.setStatus();
        }
        else{
            if(!gameId.equals(game)) {
                throw new GameDoesNotExistException(game);
            }
            else{
                throw new InvalidCharacterException(guess);
            }
        }
        g = getGame(game,session);

        return g;
    }

Я получаю исключение NullPointerException со стороны сервера:

https://pastebin.com/sczmbDri

Это код для getGame:

// Find an existing game
    private Game getGame(String id, HttpSession session) throws GameDoesNotExistException{
        List<Game> games = (List<Game>) session.getAttribute("games");
        Game g = null;
        for(int i = 0; i < games.size(); i++){
            g = games.get(i);
            if(g.getId().equals(id)){
                break;
            }
        }
        if (g == null) {
            throw new GameDoesNotExistException(id);
        }
        return g;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...