xml - 从 jaxb 的请求中解析 xml 时字段中有空值?
问题描述
我在 spring+maven+jaxb 上有应用程序。有休息控制器
@RequestMapping(value = "/risks", method = RequestMethod.POST)
public void addRisks(@RequestBody RiskMetric risks) {
risksService.addriks(risks);
}
需要像这样将xml解析为实体风险
<Risks>
<test>111</test>
<param>
<type>testType</type>
/param>
<currency>UYU</currency>
</Risks>
但是,在创建的风险实体中,字段类型为空。风险实体:
@XmlRootElement(name = "Risks")
@XmlAccessorType(XmlAccessType.FIELD)
public class Risks implements Serializable {
@XmlElement
private String test;
@XmlElement
@XmlJavaTypeAdapter(ParamAdapter.class)
private Param param;
@XmlJavaTypeAdapter(CurrencyAdapter.class)
@XmlElement
private Currency currency;
...constructors and getters\setters..
参数适配器是:
public class ParamAdapter extends XmlAdapter<String, Param> {
@Override
public Param unmarshal(String v) throws Exception {
return new Param(v);
}
@Override
public String marshal(Param v) throws Exception {
StringBuilder result = new StringBuilder();
result.append(v.getType());
return result.toString();
}
}
和 Param - 类是:
public class Param implements Serializable {
@XmlElement
private String type;
...construcors and getters and setters..
}
我需要为 Param 类创建其他适配器还是有其他方法可以解决这个问题?
ps下的调试流程是访问解组方法,输入字符串参数是“\n” - 空字符串
解决方案
删除了所有 faster.xml 依赖项并添加了 jaxb。问题解决了。
推荐阅读
- html - 为什么当我使用动画时,项目的位置会发生变化?
- app-store-connect - 您可以在 Apple 开发者帐户之间转移应用程序多少次
- reactjs - 如何防止 Ant Design Table 在行选择后重新渲染?
- reactjs - 拜托,我创建了一个 React 应用程序并将其托管在 netlify 上,但它性能低且有点滞后,请问问题出在哪里?
- selenium - ChromeDriver + Selenium 超时接收来自渲染器的消息
- python - python数据数据处理及输出方法
- python - 如何使用 sqlalchemy 调用 MySQL 的 function()?
- python-3.x - 如何比较两个字典的值?
- c - C中printf的语法
- javascript - 429错误后如何使函数重试