Ist es möglich, set-jaxb-validation-event-handler programmgesteuert zu steuern?

In einem CXF SOAP-Webservice verwende ich die folgenden Anmerkungen, um die xsd-Überprüfung zu deaktivieren:

@EndpointProperties({ 
    @EndpointProperty(key = "set-jaxb-validation-event-handler", value = "false") 
})

Ich möchte, dass die Validierung zur Laufzeit gesteuert wird (aktivieren / deaktivieren Sie sie basierend auf dem Wert einer aus einer Datenbank abgerufenen Einstellung). Meine Frage ist: Ist es möglich, diesen Handler zur Laufzeit zu deaktivieren / aktivieren? Vielleicht, indem Sie einen benutzerdefinierten Ereignishandler schreiben und diese Eigenschaft überhaupt nicht verwenden?

Vielen Dank

Bearbeiten eine Option wäre, die Validierung nicht mit @ zu deaktivierset-jaxb-validation-handler und eher Unterklasse ValidationEventHandler. Wie erklärtHie, Ich würde dann die Datenbankeinstellung in @ überprüfhandleEvent und kehre entsprechend seinem Wert zurück.

Aber es gibt immer noch ein paar Nachteile bei diesem Ansatz: Erstens ist dieser Webservice mit Anmerkungen konfiguriert, und ich kann anscheinend keinen Weg finden, ein @ anzuwendeValidationEventHandler mit Anmerkungen (gleiche Frage wie:So legen Sie einen benutzerdefinierten ValidationEventHandler für JAXB-Unmarshaller fest, wenn Sie Anmerkungen verwenden).

Zweitens bedeutet dies, dass die Validierung auch dann durchgeführt wird, wenn ich sie nicht benötige. Ich würde dann jeden Leistungsvorteil verlieren.

Das passt nicht genau zu meinen Bedürfnissen, daher bin ich immer noch offen für Vorschläge.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage