Was ist der richtige Weg, um zu überprüfen, Anfragen mit Resteasy?
Benutze ich Resteasy in Kombination mit Google Guice mit Resteasy-Guice. Ich habe auf der Suche nach Möglichkeiten, um zu validieren, meine Anfrage zu stellen. Ich will tun, zum Beispiel:
public static class MyPojo {
@NotEmpty private String contents;
}
Verwenden und dann in meine Ressource
@POST
@ValidateRequest
public void doPost(@Valid MyPojo myPojo) {
//use myPojo only if valid
}
Habe ich die Arbeit mit dem resteasy-hibernate-validator-Anbieter. Aber seit ich wechselte zu neueren Versionen, dies stellte die (unerwünschte?) Abhängigkeit der EJB. Siehe auch: RESTEASY-1056. In den Kommentaren wird erwähnt, dass Sie wechseln sollten, um die neueren validator-11 statt:
Schalter zum resteasy-validator-Anbieter-11, die sich um die neuere Bean-Validation-1.1-Spezifikation.
Den docs sagen:
Validierung ist standardmäßig eingeschaltet (vorausgesetzt, resteasy-validator-provider-11-.jar verfügbar ist), wenn parameter und return-Wert-Validierung ausgeschaltet werden kann oder geändert, in der validation.xml Konfigurations-Datei. Finden Sie in der Hibernate-Validator-Dokumentation für details.
Ich jedoch nicht verwalten, um diese arbeiten zu meiner Konfiguration, da ich mich selbst zu finden, inklusive Abhängigkeiten wie hibernate-validator
, javax.el-api
, javax.el
und hibernate-validator-cdi
und Anmerkungen wie ValidateOnExecution
. Ich jedoch nicht finden, eine dieser instanziiert oder ungültige Anträge werden abgelehnt.
Was ist die bevorzugte, leicht und Arbeitsweise zu tun, dass die überprüfung mit Resteasy?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie nicht geben Sie alle Anmerkungen an die Ressource selbst oder eine zusätzliche Konfiguration. Gerade die constraint-Annotationen auf POJOs sind genug, um es arbeiten.
Mein setup ist wie folgt:
Die Ressource-Methode:
Den POJO:
Getestet mit den folgenden Abhängigkeiten:
javax.validation
version1.1.0.Final
resteasy-validator-provider-11
version3.0.11.Final
hibernate-validator
version5.0.0.Final
und5.0.1.Final
hibernate-validator-provider
verursachte früheren versuchen zu scheitern. Sicherzustellen, dass Sie nicht eine transitive Abhängigkeit zu denhibernate-validator-provider
. Für mich verursacht die folgende Ausnahme: issues.jboss.org/browse/RESTEASY-826 .javax.validation
,resteasy-validator-provider-11
,hibernate-validator
.java.lang.NoClassDefFoundError: javax/el/PropertyNotFoundException
). Basierend auf diese Antwort, die ich Hinzugefügtjavax.el-api
undel-impl
als Abhängigkeiten. Ich denke, das ist, weil ich über einen eingebetteten servlet-container.@ValidateOnRequest
annotation der Ressourcen, Sie sind nicht mehr notwendig,Letzte funktionierende Konfiguration: