java - "org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation"生成 xml 响应

标签 java spring-boot spring-restcontroller xml-binding

我尝试从 Spring Boot RestController 生成 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;
}

下面的代码是RestConstroller.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);
    }
  }
}

成功返回Json格式数据。但不会生成 xml 格式的值。它抛出以下异常。

.w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation]

我将一些依赖项添加到 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>

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

最佳答案

@GetMapping 注释中设置 consumes 属性。

@GetMapping(value = "getAllUser", produces = MediaType.APPLICATION_XML_VALUE, consumes = MediaType.APPLICATION_XML_VALUE)

关于java - "org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation"生成 xml 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55369590/

相关文章:

spring-mvc - Spring @RestController 没有通过响应设置 cookie

java - 以纯文本形式获取 XML

java - 运行 JNLP 卡在验证应用程序上

java - 使用aspectj进行springboot日志记录获取IllegalArgumentException:错误在::0在切入点中正式未绑定(bind)

java - Keycloak + Spring Security,通过本地登录表单

spring-boot - 如何将 spring-boot-application 的静态 keystore 替换为动态 keystore

java - @RequestBody 返回的 Marshall 对象

java - BeanIO InvalidRecordGroupException 给出错误的行号

java - 多个 jar ,单个持久性单元解决方案?

java - 使用jna消费按键事件