Je travaille sur la passerelle api, avec botte et jersey (j'ai utilisé spring-boot-starter-jersey). Je suppose que de revenir XML et JSON réponse, il semble fonctionner avec une réponse JSON mais quand la demande est faite pour xml je reçois 404. voici le code pour le serviceSpring Boot avec Jersey retour réponse xml
package com.quickp.services;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.ResponseBody;
import com.quickp.unit;
import com.quickp.models.units;
import com.quickp.serviceclient.ApiClient;
@Path("api/units")
public class UnitsService{
private ApiClient client;
public UnitsService(ApiClient client){
this.client = client;
}
@GET
@Produces({MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_VALUE})
public @ResponseBody Units getUnits(
@QueryParam("search") final String search,
@QueryParam("page") @DefaultValue("1") final int page) {
return client.getUnits(search, page, 10);
}
}
pom.xml a ce qui suit:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-xml-provider</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-asl</artifactId>
<version>4.4.1</version>
</dependency>
et Units.class est quelque chose comme:
@Data
@JacksonXmlRootElement(localName = "units")
public class Units {
private int found;
private int display;
private boolean hasMore;
@JsonProperty("unit")
@JacksonXmlElementWrapper(useWrapping = false)
List<Unit> list;
}
et unit.class est quelque chose comme:
@Data
@EqualsAndHashCode
@JacksonXmlRootElement(localName = "unit")
public class Unit {
private int id;
private String name;
private String unitType;
private String unitApp;
private String unitHomeApp;
}
(J'utilise lambok donc je n'ai pas besoin d'ajouter des getters et setters manuellement).
Merci pour toute l'aide que je suis coincé avec cela.
Cordialement Sajid