bean-validation validation.xml ignoriert
Ich bin mit JSR 303 Bean-Validierung in meinem JSF 2.0-Anwendung, und es funktioniert gut mit Anmerkungen. Nun würde ich gerne ignorieren, Anmerkungen und konfigurieren der überprüfung von Regeln mit der validation.xml - Datei, so ist dies, was ich getan habe (ich bin mit einem eclipse dynamic web project) :
-
Hinzugefügt validation.xml unter WebContent/META-INF/validation.xml
<?xml version="1.0" encoding="UTF-8"?> <validation-config xmlns="http://jboss.org/xml/ns/javax/validation/configuration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/configuration validation-configuration-1.0.xsd" > <constraint-mapping>META-INF/validation/constraint-mapping.xml</constraint-mapping> </validation-config>
-
Dann die Datei erstellt constraint-mapping.xml unter WebContent/META-INF/validation/constraint-mapping.xml
<constraint-mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/mapping validation-mapping-1.0.xsd" xmlns="http://jboss.org/xml/ns/javax/validation/mapping"> <bean class="my.full.path.ValidationMB" ignore-annotations="true"> </bean> </constraint-mappings>
Dass diese Konfigurationen im Ort, ich nehme an, dass die Anmerkungen in meinem bean-Klasse ValidationMB ignoriert werden, ABER das ist nicht passiert!, das lässt mich davon ausgehen, dass die validation.xml die Datei wird nicht geladen.
irgendwelche Ideen? danke.
Umgebung:
- Apache Tomcat 7.0.23
- javax.faces-2.1.4.jar
- hibernate-validator-4.2.0.Final.jar
- hibernate-validator-annotation-processor-4.2.0.Final.jar
- validation-api-1.0.0.GA.jar
- slf4j-api-1.6.1.jar
Aus der spec: Abschnitt 4.4.6. XML Konfiguration: META-INF/validation.xml
Sofern nicht explizit durch den Aufruf ignoriert
- Konfiguration.ignoreXMLConfiguration(), a Configuration in
Konto-Konfiguration verfügbar META-INF/validation.xml. Diese
Konfiguration-Datei ist optional, kann aber von Anwendungen verwendet werden, um
verfeinern Sie einige der Bean-Validation-Verhalten. Wenn mehr als eine
META-INF/validation.xml Datei gefunden in den classpath ein
ValidationException ausgelöst.
- Ich habe versucht, den validation.xml buchstäblich überall und es immer noch nicht funktioniert für mich. Haben Sie herausgefunden, etwas anderes, als hier geschrieben?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mein problem zu lösen musste ich erstellen Sie ein META-INF-Ordner unter dem Projekt src Ordner, dessen enden in das WEB-INF/classes/META-INF.
Die Struktur der web-Anwendung ist:
Aber ich denke, wenn ich pack meine web-Anwendung in eine jar-Datei und die Wiederverwendung in einem anderen Projekt kann Es nicht funktionieren, ich lasse Sie später wissen, wenn ich es mache.
Versuchen, Ihre validation.xml direkt in der WEB-INF/ Verzeichnis.
Stolperte ich über dies, während der Suche nach etwas anderes, aber wollte zur Klärung der OP was passiert ist. Sie haben in der Tat muss die Datei noch vorhanden bei META-INF/validation.xml; das ist allerdings relativ zu classpath, die ist, warum es funktioniert, wenn du es unter WEB-INF/classes/META-INF/validation.xml.
Den Reiniger Ansatz zu lassen, die Datei ist dort für Sie. Ihr Eclipse-Projekt sollte bereits ausgeben, was in Ihrem source-Verzeichnis WEB-INF/classes irgendwie für Sie oder nichts laufen würde. Aber manchmal gibt es Filter auf das, was es gibt, so könnte es ohne etwas. Möchten Sie vielleicht zu prüfen, Ihr src-Verzeichnisse und stellen Sie sicher, dass Sie nicht haben, AUSSCHLÜSSE.
Nur als Beispiel, wenn Sie hatte ein Maven-Krieg Projekt, alle Ihre java-Quellen im src/main/java und die generierten Klassen in WEB-INF/classes-Verzeichnis. Das äquivalent passiert, für src/main/resources enthält nicht-Quelltext-Dateien. Wenn ich will *.xml, *.Eigenschaften, etc. um am Ende in WEB-INF/classes habe ich Sie in src/main/resources. Für dein Beispiel würde ich eine src/main/resources/META-INF/validation.xml Datei.
Hoffe, dies hilft jemand anderes, die auf diesen und ist verwirrt.