Ошибка 415. Служба REST с пружиной - AngularJs

0

У меня проблемы с моим сервисом. Я отправляю петицию $ http.get от углового до контроллера Spring, но у меня есть следующая ошибка: сервер отказался от этого запроса, потому что запрашиваемая сторона находится в формате, не поддерживаемом запрошенным ресурсом для запрошенного метода.

контроллер:

@Controller
public class PersonController {

    @Autowired
    private PersonService personService;


    @RequestMapping(value = "/person", consumes = {"application/json;charset=UTF-8"}, produces={"application/json;charset=UTF-8"},  method = RequestMethod.GET)
    public @ResponseBody List<Person> listPersons_() {
        return this.personService.listPersons();
    }
...

Угловое обслуживание:

    function get($scope, $http) {
        $http.get('person').
            success(function(data) {
                $scope.greeting = data;
            });
    }
...

Снимок экрана: Изображение 174551

Заголовок: Изображение 174551

  • 0
    Похоже, что вы пропускаете / & имя контроллера при создании ajax, это должно быть $http.get('/Person/person')
  • 0
    Все в порядке. Я проверил консоль
Показать ещё 3 комментария
Теги:
spring

3 ответа

0
Лучший ответ

Ну... после удаления атрибутов (потребляют и производят), я получаю ошибку 406, и я чувствовал, что мне нужно добавить библиотеку Jackson-databin. и это сработало.

контроллер:

@Controller
public class PersonController {

    @Autowired
    private PersonService personService;


    @RequestMapping(value = "/person", method = RequestMethod.GET)
    public @ResponseBody List<Person> listPersons_() {
        return this.personService.listPersons();
    }
...

Зависимость:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.3.0</version>
</dependency>

Большое спасибо.

1

Я не думаю, что вам нужны те, кто produces/consumes заголовки. Я разработал очень похожее приложение, в котором служба AngularJS была такой же, как ваша, но она была относительно простой в конце Spring:

// List All Employees
@RequestMapping(value = "/employee/all", method = RequestMethod.GET)
public AllEmployeesResponse listAllEmployees() {

    return empService.listAll();
}

Все, что у меня было, это объект AllEmployeesResponse содержащий список объектов Employee.

Джсон позаботился о себе. Если у вас нет, проверьте, был ли реализован Serializable в вашем классе @Entity.

Кроме того, у меня был @RestController вместо простого @Controller.

1

Spring MVC по умолчанию не очень многословно, когда речь заходит об ошибках HTTP. Что вы можете сделать, так это повысить уровень журнала пакета org.springframework.web до DEBUG чтобы вы могли лучше объяснить ошибку 415.

Удачи !

Даниил

Ещё вопросы

Сообщество Overcoder
Наверх
Меню