Je POSTE un XML à mon application springboot et je le reçois dans un Pojo Jaxb et je renvoie une réponse. Je suis capable de le faire avec succès, cependant si je passe xml avec l'espace de noms j'obtiens le code de réponse comme 406 et le corps de réponse comme aucun contenu. J'ai essayé plusieurs façons d'ajouter un espace de noms dans mon Pojo et j'ai même essayé de l'ajouter dans le paquet-info mais je suis incapable de trouver un moyen de le faire fonctionner. Ci-dessous l'exemple de travail avec un xml simple, sans espace de nomsJAXB - Envoyer XML avec l'espace de noms au contrôleur REST dans SpringBoot
Pojo Employee.java
@XmlRootElement(name = "Employee")
public class Employee {
private int id;
private String name;
private float salary;
public Employee() {}
public Employee(int id, String name, float salary) {
super();
this.id = id;
this.name = name;
this.salary = salary;
}
@XmlAttribute
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@XmlElement //(namespace="http://www.example.org/property")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement
public float getSalary() {
return salary;
}
public void setSalary(float salary) {
this.salary = salary;
}
}
ci-dessous est ma méthode du contrôleur qui devient des valeurs du xml via POJO
@RequestMapping(value = { "/myURL" }, method = RequestMethod.POST, consumes = { "application/xml" })
public ResponseEntity<?> postMethodXMLreturnXML(@RequestBody Employee list) {
try {
Employee FirstValue=list;
System.out.println("SOP : post Method started . Name " + FirstValue.getName());
return new ResponseEntity<Object>(Employee , HttpStatus.CREATED);
} catch (Exception e) {
e.printStackTrace();
return (new ResponseEntity<String>(ErrorCodes.SERVER_ERROR.getDescription(),
HttpStatus.INTERNAL_SERVER_ERROR));
}
}
Ci-dessous la xml que je poste à ceci et obtenir la sortie désirée avec le code de réponse valide et le message de réponse
Entrée post xml
<?xml version="1.0"?>
<Employee>
<id>1</id>
<name>myName</name>
<salary>1.1</salary>
</Employee>
Mais je veux maintenant passer sous xml, et quand je passe ci-dessous xml à ce code i obtenir le code de réponse 406 et pas de contenu, ai essayé d'ajouter l'espace de noms en POJO et même essayé d'ajouter du code pour empaqueter informations, S'il vous plaît conseiller Merci d'avance
<?xml version="1.0"?>
<Employee>
<myns:id>1</myns:id>
<myns:name>myName</myns:name>
<myns:salary>1.1</myns:salary>
</Employee>
Vous utilisez uniquement un espace de noms dans les balises d'ouverture. Les balises de fermeture n'en ont pas. –
La fermeture a aussi, mis à jour ... –
Joindre le code client. –