我有控制器
@RequestMapping(value = "/authors", produces = {"application/json","application/xml"})
public class AuthorController {
@RequestMapping(value = "/all",method = RequestMethod.GET)
public List<Author> findAll() {
return authorRepository.findAll();
}
}pom.xml
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.8.3</version>
</dependency>当Accept : application/json时,响应正常当Accept : application/xml时,响应为406不可接受
有什么提示吗?
谢谢
发布于 2016-10-07 19:32:09
假设你用@RestController注释了你的控制器,它应该可以工作。
Spring Boot你不需要向jackson-core添加依赖--它是用spring-boot-starter-web.
jackson-dataformat-xml指定版本--让
找到下面的最小设置来获得Jackson work的XML序列化:
pom.xml中的依赖项
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
</dependencies>控制器和序列化类
@RestController
class PersonController {
@GetMapping("/")
Person get() {
return new Person("John Doe", 44);
}
}
class Person {
private String name;
private int age;
public Person(final String name, final int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}XML请求:
curl -H "Accept: application/xml" http://localhost:8080/
<Person><name>John Doe</name><age>44</age></Person>请求JSON:
curl -H "Accept: application/json" http://localhost:8080/
{"name":"John Doe","age":44}https://stackoverflow.com/questions/39915019
复制相似问题