Java &引用;org.springframework.web.HttpMediaTypeNotAcceptableException:找不到可接受的表示法“;生成xml响应的步骤

Java &引用;org.springframework.web.HttpMediaTypeNotAcceptableException:找不到可接受的表示法“;生成xml响应的步骤,java,spring-boot,spring-restcontroller,xml-binding,Java,Spring Boot,Spring Restcontroller,Xml Binding,我试图从SpringBootRestController生成xml格式的数据。下面是用户型号代码 @Entity @Table(name="BlogUser") @XmlRootElement public class User { @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="USER_ID", nullable = false, unique = true) private Long id

我试图从SpringBootRestController生成xml格式的数据。下面是用户型号代码

@Entity  
@Table(name="BlogUser")
@XmlRootElement
public class User {

  @Id
  @GeneratedValue(strategy=GenerationType.AUTO)
  @Column(name="USER_ID", nullable = false, unique = true)
  private Long id;

  @Column(unique=true, nullable=false)
  @Length(min=2, max=30)
  @NotEmpty
  private String username;

  @Column(nullable=false)
  @Length(min=5)
  @NotEmpty
  private String password;

  @Column
  @Email
  @NotEmpty
  private String email;

  @Column
  @NotEmpty
  private String fullname;

  @Column
  private UserRole role;
}
下面的代码是restcontroller.java

@RestController
@RequestMapping(value="/rest/user")
@SessionAttributes("user")
public class UserRestController {
  @Autowired
  private UserService userService;

  @GetMapping(value="getAllUser", produces=MediaType.APPLICATION_XML_VALUE)
  public ResponseEntity<List<User>> getAllPost() {
    List<User> users = this.userService.findAll();

    if(users == null || users.isEmpty())
      return new ResponseEntity<List<User>>(HttpStatus.NO_CONTENT);
      return new ResponseEntity<List<User>>(users, HttpStatus.OK);
    }
  }
}
我将一些依赖项添加到pom.xml中,如下所示

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.dataformat</groupId>
  <artifactId>jackson-dataformat-xml</artifactId>
</dependency>

com.fasterxml.jackson.core
杰克逊数据绑定
com.fasterxml.jackson.core
杰克逊注释
com.fasterxml.jackson.dataformat
jackson数据格式xml

但仍然抛出相同的异常。我无法理解我错过了什么来解决这个问题。

@GetMapping
注释中设置
consumes
属性

@GetMapping(value = "getAllUser", produces = MediaType.APPLICATION_XML_VALUE, consumes = MediaType.APPLICATION_XML_VALUE)
(代表问题作者张贴)

我修改方法如下:

@GetMapping(value="getAllUser", produces = { "application/xml", "text/xml" }, consumes = MediaType.ALL_VALUE)
    public ResponseEntity<List<User>> getAllPost() {
..
@GetMapping(value=“getAllUser”,products={“application/xml”,“text/xml”},consumes=MediaType.ALL\u值)
公共响应getAllPost(){
..

它工作得很好。它返回xml类型值。

你能发布你的用户类吗?我已经发布了用户类。还要尝试在你的控制器端点中设置
consumes=MediaType.APPLICATION\u xml\u值
。很抱歉,我错过了它,因为它被标记为
@Entity
。通常,我不会将实体与DTO混淆。尝试生成getter和您的
User
类中有d个setter。感谢您的回复。我使用lombok生成getter/setter方法。但是引发了相同的异常。
@GetMapping(value="getAllUser", produces = { "application/xml", "text/xml" }, consumes = MediaType.ALL_VALUE)
    public ResponseEntity<List<User>> getAllPost() {
..