У меня проблемы с моим сервисом. Я отправляю петицию $ 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;
});
}
...
Снимок экрана:
Заголовок:
Ну... после удаления атрибутов (потребляют и производят), я получаю ошибку 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>
Большое спасибо.
Я не думаю, что вам нужны те, кто 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
.
Spring MVC по умолчанию не очень многословно, когда речь заходит об ошибках HTTP. Что вы можете сделать, так это повысить уровень журнала пакета org.springframework.web
до DEBUG
чтобы вы могли лучше объяснить ошибку 415.
Удачи !
Даниил
/
& имя контроллера при создании ajax, это должно быть$http.get('/Person/person')