私はXMLレスポンスをXML要求を受け取り、生産安らかなWebサービスを作成しようとしていると私はそれのために春4.3.5を使用しています...春4 RestControllerマップしないXML要求が正しく
問題があるときに私はPOSTMANを使ってポストリクエストをポストしており、xmlリクエスト属性がプレーヤPOJOとマッピング/デシリアライズしていないことがわかっているよりも、サービスメソッドでデバッグを追加しています。
すべてのヘルプはappreciated..Thanksだろう
@RestController
public class SyncRestfulService {
LoggerManager loggerManager = new LoggerManager();
@RequestMapping(value = RestURIConstants.SAMPLE_POST_PLAYER, method = RequestMethod.POST, headers = {
"Content-type=application/xml" })
public Player getPlayer(Player requestEntity) {
loggerManager.info(LoggerConstantEnum.SyncRestfulService ,
"| <AbilitySyncRestfulService> Method: getPlayer " + requestEntity);
loggerManager.info(LoggerConstantEnum.SyncRestfulService , "Id : ", requestEntity.getId());
return requestEntity;
}
}
要求XMLデータ
//Request
<player>
<id>1</id>
<matches>251</matches>
<name>Anand</name>
</player>
//response xml data
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<player>
<id>0</id>
</player>
// JAXB POJO
@XmlRootElement(name = "player")
@XmlAccessorType(XmlAccessType.NONE)
public class Player {
private int id;
private String name;
private String matches;
public int getId() {
return id;
}
@XmlElement(name = "id")
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
@XmlElement(name = "name")
public void setName(String name) {
this.name = name;
}
public String getMatches() {
return matches;
}
@XmlElement(name = "matches")
public void setMatches(String matches) {
this.matches = matches;
}
}
私が間違っている場合は、私が考える正しいアドオンはご使用のコントローラ –
に= { \t \t \t MediaType.APPLICATION_XML_VALUE}を生成し、uは、アプリケーションのcontext.xmlファイル –
にPOJOおよびその逆にXMLを変換するための設定Beanを持っていますスプリング4ではコンバーターを追加する必要はありません。そしてそのXMLを正しく生成していますが、それをテストしましたが、ポストボディのxml文字列を "Playter playter"にマッピングしている場合 –