gpt4 book ai didi

java - 请求正文中的父类(super class) - 'application/xml;charset=UTF-8' 不受支持

转载 作者:太空宇宙 更新时间:2023-11-04 12:14:02 25 4
gpt4 key购买 nike

我想向我的端点发送一个 xml 对象,但我将拥有该对象的多种类型,并且我想使用继承。

我的 super 类看起来像这样:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlSeeAlso(Sgr.class)
public class AbstractSgr {

@XmlAttribute(required = true)
protected String id;

@XmlAttribute(required = true)
protected String field1;

@XmlAttribute(required = true)
protected String field2;

@XmlElement
@XmlSchemaType(name = "date")
protected LocalDate startDate;

@XmlElement
@XmlSchemaType(name = "date")
protected LocalDate endDate;
//getters setters
}

我的 child 类(class):

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "sgr")
public class Sgr extends AbstractSgr {

@XmlElementWrapper(name = "competitions")
@XmlElement(name = "competition")
private List<String> competitions;

@XmlElementWrapper(name = "games")
@XmlElement(name = "game")
private List<String> games;
//getters setters
}

还有我的包裹信息:

@XmlJavaTypeAdapters({
@XmlJavaTypeAdapter(type = java.time.LocalDate.class, value = LocalDateAdapter.class),
})
@XmlSchema(namespace = "http", elementFormDefault = XmlNsForm.QUALIFIED)

我的 Controller :

@RequestMapping(value = "/test/mapping", method = RequestMethod.POST,
consumes = MediaType.APPLICATION_XML_VALUE)
public ResponseEntity<HttpStatus> saveSgr(
@RequestBody final AbstractSgr sgr) throws ServiceException {

}

问题是当我使用有效的 XML 发送 post 请求时,出现以下错误:

org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/xml;charset=UTF-8' not supported
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.readWithMessageConverters(HandlerMethodInvoker.java:645) ~[spring-web-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveRequestBody(HandlerMethodInvoker.java:604) ~[spring-web-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:353) ~[spring-web-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:170) ~[spring-web-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:446) ~[spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:434) ~[spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938) [spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) [spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) [spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863) [spring-webmvc-4.0.5.RELEASE.jar:4.0.5.RELEASE]

但是当我将 sgr 对象的类型更改为 Sgr 时,一切正常,我得到了正确的对象。有人遇到过类似的问题吗?

最佳答案

尝试将依赖项添加到您的 pom.xml

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

关于java - 请求正文中的父类(super class) - 'application/xml;charset=UTF-8' 不受支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39588593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com