Java 在SpringMVC中,对请求体使用Jaxb注释的正确配置是什么?

Java 在SpringMVC中,对请求体使用Jaxb注释的正确配置是什么?,java,xml,rest,spring-mvc,jaxb,Java,Xml,Rest,Spring Mvc,Jaxb,目前我有一个RESTful服务,我正在尝试反序列化一个POST请求主体,即XML,但它不起作用。我已经尝试了所有的解决方案,但似乎都不管用。JSON与SpringMVC完美结合,但让XML发挥作用是一件非常痛苦的事情 我使用Spring5.1.5版本,并使用Jaxb进行编组和解编组 以下是我目前拥有的: 这是我的spring mvc配置: 这些是我的pom.xml依赖项: org.springframework 弹簧芯 ${spring.framework.version} org.spr

目前我有一个RESTful服务,我正在尝试反序列化一个POST请求主体,即XML,但它不起作用。我已经尝试了所有的解决方案,但似乎都不管用。JSON与SpringMVC完美结合,但让XML发挥作用是一件非常痛苦的事情

我使用Spring5.1.5版本,并使用Jaxb进行编组和解编组

以下是我目前拥有的:

这是我的
spring mvc
配置:


这些是我的
pom.xml
依赖项:


org.springframework
弹簧芯
${spring.framework.version}
org.springframework
spring上下文
${spring.framework.version}
org.springframework
弹簧网
${spring.framework.version}
org.springframework
SpringWebMVC
${spring.framework.version}
org.springframework.guice
春风
${spring.guice.version}
org.springframework
弹簧oxm
${spring.framework.version}
org.apache.logging.log4j
log4j-slf4j-impl
${sl4j-log4j.version}
org.projectlombok
龙目
${lombok.version}
假如
javax.annotation
javax.annotation-api
${javax.annotation.version}
com.google.inject
圭斯
${guice.version}
javax.xml.bind
jaxb api
2.3.1
这是我的
RestController

@RestController
@请求映射(“发布”)
公共类协议控制器{
@自动连线
私人发行人管理人发行人管理人;
@PostMapping(value=“init”,products=“application/xml”,consumes=“application/xml”)
public IssuanceMessage和Boolean InitializeSuance(@RequestBody final IssuancePolicy and Attributes ipaa)引发CryptoEngineeException{
IssuanceMessageAndBoolean imab=issuerManager.InitializeSuanceProtocol(ipaa);
返回imab;
}
这就是我试图反序列化的对象(
issuancepolicy和attributes
):


@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(
name=“IssuancePolicyandAttribute”,
名称空间=”http://abc4trust.eu/wp2/abcschemav1.0",
Propoder={“issuancePolicy”,“属性”}
)
@XmlRootElement(
name=“IssuancePolicyandAttribute”
)
公共类IssuancePolicyandAttribute实现可序列化{
私有静态最终长serialVersionUID=6699648078303838561L;
@XmlElement(
name=“IssuancePolicy”,
名称空间=”http://abc4trust.eu/wp2/abcschemav1.0",
必需=真
)
受保护的发行政策发行政策;
@XmlElement(
name=“Attribute”,
名称空间=”http://abc4trust.eu/wp2/abcschemav1.0"
)
受保护列表属性;
公开发行政策和属性(){
}
public IssuancePolicy getIssuancePolicy(){
返回此.issuancePolicy;
}
public void setIssuancePolicy(IssuancePolicy值){
this.issuancePolicy=值;
}
公共列表getAttribute(){
if(this.attribute==null){
this.attribute=new ArrayList();
}
返回此.attribute;
}
}
这是我作为请求主体发送的XML:


Knsru9cgzkaebogervv
一些数据
http://MyFavoriteSoccerTeam/tickets/vip
http://ticketcompany/MyFavoriteSoccerTeam/issuance:idemix
-5027215341191833963
名字
福纳文
约翰
-2715953330829768453
姓
埃弗特纳文
道氏
-2231744817504418816
生日
fødselsdag
1985-05-05Z
-2231744817504418826
比赛日
坎普达格
2013-08-07Z
-1231744817504418817
VIP会员id
贵宾奖章
23784638726
当我调试并检查
RestController
的变量
ipaa
的值时,变量本身被实例化,但其所有成员都为null,这表明解组操作没有正确进行


我做错了什么?

更改xml元素的名称

@XmlElement(name = "abc:IssuancePolicy", namespace = "http://abc4trust.eu/wp2/abcschemav1.0", required = true)
protected IssuancePolicy issuancePolicy;

@XmlElement(name = "abc:Attribute", namespace = "http://abc4trust.eu/wp2/abcschemav1.0")
protected List<Attribute> attribute;
@xmlement(name=“abc:IssuancePolicy”,命名空间=”http://abc4trust.eu/wp2/abcschemav1.0“,必需=真)
受保护的发行政策发行政策;
@XmlElement(name=“abc:Attribute”,名称空间=”http://abc4trust.eu/wp2/abcschemav1.0")
受保护列表属性;

更改xml元素的名称

@XmlElement(name = "abc:IssuancePolicy", namespace = "http://abc4trust.eu/wp2/abcschemav1.0", required = true)
protected IssuancePolicy issuancePolicy;

@XmlElement(name = "abc:Attribute", namespace = "http://abc4trust.eu/wp2/abcschemav1.0")
protected List<Attribute> attribute;
@xmlement(name=“abc:IssuancePolicy”,命名空间=”http://abc4trust.eu/wp2/abcschemav1.0“,必需=真)
受保护的发行政策发行政策;
@XmlElement(name=“abc:Attribute”,名称空间=”http://abc4trust.eu/wp2/abcschemav1.0")
受保护列表属性;

它不能解决问题。
issuancePolicy
attribute
仍然为空。我已经共享了我所做的所有代码和配置。我希望解组由Spring MVC ba完成