0
spring-web
を使用して、POST
xmlリクエストをWebサービスに送信しています。しかし、私はjaxb
の特性とそれを定義した方法レンダリングされません私のXml豆要求:Spring RestTemplateはXMLアノテーションを無視します(@XmlAttributeなど)?
//this class is autogenerated with xsdtojava from *.xsd files
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "myRequest")
public class ServletRequest {
@XmlAttribute(name = "age")
private int age;
}
使用法:
ServletRequest req = new ServletRequest();
req.setAge(20);
restTemplateBuilder.build().postForEntity(url, new HttpEntity<>(req), MyRsp.class);
結果のXMLの送信である:
<ServletRequest>
<age>20</age>
</ServletRequest>
問題を:両方を@XmlRootElement
という名前と@XmlAttribute
注釈は無視されているようです。どうして?
私は長い時間前に同様の問題を抱えていたし、私はそれがジャクソンのセットアップ後、春の詳細だと思います。おそらく既にこれを行っているでしょう.jaxbアノテーションhttps://github.com/FasterXML/jackson-module-jaxb-annotationsを使用するようにJackson Jaxbモジュールを登録する必要があります。私は実際に 'com.fasterxml.jackson.dataformat.xml.annotation'の' @JacksonXmlProperty(isAttribute = true) 'と' @JacksonXmlRootElement(localName = "document") 'を使用して終了しました – varren
しかし、' xsdtojava'に'@ JacksonXmlProperty'を利用しますか?私はむしろ自動生成されたクラスを変更したくないでしょう... – membersound