Servlet-Filtern, die mit java EE 6 Anmerkungen?
Ist es möglich zu simulieren, einen servlet-filter-Kette mit @ApplicationPath und @Path-Annotationen in EE 6?
Beispiel:
@ApplicationPath("/api")
class Filter extends Application {
@Path("/*")
public void filter() {
log.info("Request to API");
}
}
...
@Path("/foo")
class Foo {
@GET
@Path("/bar")
@Produces("text/plain")
public String bar() {
return "Hello World";
}
}
Wo die URL http://foobar.com/api/foo/bar aber der "filter" - Methode aufgerufen werden, als wäre es ein servlet-filter-chain. Ich weiß, der Ansatz oben nicht funktionieren, aber gibt es eine kommentierte Ansatz in dieser ilk, um die gleiche, als wenn der "Filter" konfiguriert wurde aus web.xml Datei?
Du musst angemeldet sein, um einen Kommentar abzugeben.
JBoss 7 (auch JBoss 6 schon) unterstützt Java EE 6-das wiederum deckt Servlet 3.0. Vielleicht ist Ihr
web.xml
ist falsch deklariert wurde, entsprechen, Servlet 2.5, verursacht der@WebFilter
überhaupt nicht zu funktionieren. Sicherstellen, dass das root-Deklaration derweb.xml
ist erklärt worden konformen Servlet 3.0 wie folgt:Dann können Sie einfach
@WebFilter
:Den Beispielen, die Sie gezeigt haben, gibt es übrigens Teil der JAX-RS, die eine andere API (eine RESTful-webservice-API) basiert auf Servlets. Erfahren Sie mehr über JAX-RS, die Jersey-Benutzerhandbuch nützlich sein können.
Siehe auch:
<filter>
und<filter-mapping>
imweb.xml
. Aber wenn du schon nicht eineweb.xml
haben, dann ist das auch völlig in Ordnung. Die Unmöglichkeit der Nutzung@WebFilter
und die besagt, dass man mit Servlet 2.5, wie Sie implizit selbst jedoch gibt an, dass Sie bereits haben einweb.xml
was wiederum falsch erklärt wurden, entsprechen Servlet 2.5. Oder nicht Sie tatsächlich versucht, etwas selbst zu alle?@WebFilter
. Lesen Sie die Dokumentation für alle Optionen der annotation: download.oracle.com/javaee/6/api/javax/servlet/annotation/... Die einzige, die Sie nicht kontrollieren können, ist die Reihenfolge der Filter. Für die, die Sie wirklich noch brauchenweb.xml
siehe auch stackoverflow.com/questions/6560969/...