Ich benutze die neueste Version von Jersey für einen API-Server. I definiert die nächste Ressource:Wie wählt Jersey/Jax-RS die richtige Methode in einer Ressource
@javax.ws.rs.Path("/myPath")
public class MyResource {
@GET
@Consumes({MediaType.WILDCARD, MediaType.TEXT_PLAIN, MediaType.TEXT_HTML})
@Produces(MediaType.TEXT_PLAIN)
public Response method1(@Context Request request) {
}
@GET
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public MyObject method2() {}
}
Jetzt können sagen, dass ich diese Ressource mit dem nächsten Kopf nenne:
<header>
<name>Accept</name>
<value>text/html, application/xhtml+xml, */*</value>
</header>
Wie funktioniert Jersey weiß, was man in diesem Fall zu entsprechen, wo kein Verfahren Producer
Anmerkung stimmt überein? Ich frage, weil einmal der Server auf die Methode2 geantwortet hat und nach dem Neustart es auf Methode1 geantwortet hat.
Ich aktualisierte das Ticket Ich testete es. Ich bekomme keine 406. Ich habe gerade meinen Server neu gestartet und die Entscheidung von Jersey ist anders. Ich weiß über */* - aber wie wählt Jersey die richtige Methode aus? –
Sieht geschlossen, aber sie sprechen nur über "Path" -Ebene Entscheidung, und nicht über Attribute Entscheidungen –