我的服务有问题。我发送了一个请愿$ http.get从angular到我的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();
}
...
Angular Service:
function get($scope, $http) {
$http.get('person').
success(function(data) {
$scope.greeting = data;
});
}
...
答案 0 :(得分:1)
在HTTP错误方面,默认情况下,Spring MVC不是很冗长。您可以做的是将包org.springframework.web
的日志级别提高到DEBUG
,以便更好地解释415错误。
祝你好运!
丹尼尔
答案 1 :(得分:1)
我认为你不需要那些produces/consumes
标题。我开发了一个非常类似的应用程序,它使AngularJS服务与你的相同,但在Spring结束时相对非常简单:
// List All Employees
@RequestMapping(value = "/employee/all", method = RequestMethod.GET)
public AllEmployeesResponse listAllEmployees() {
return empService.listAll();
}
我所拥有的只是一个包含AllEmployeesResponse
个对象列表的Employee
对象。
json照顾好自己。如果不属于您,请检查您的Serializable
课程中是否已实施@Entity
。
此外,我的@RestController
代替普通@Controller
。
答案 2 :(得分:0)
嗯...删除atributes(消耗并生成)后,我会收到错误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>
非常感谢。