Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Verwendung as lib in JAR (Spring Boot) scheitert an external scheme "nested" #140

Open
melo0187 opened this issue Nov 18, 2024 · 0 comments

Comments

@melo0187
Copy link

melo0187 commented Nov 18, 2024

Nachdem ich aufgrund der veralteten Dokumentation die ersten Schwierigkeiten bei der Verwendung des KoSIT validators 1.5.0 in einer Spring Boot 3 Applikation mit Java 21 überwunden hatte stellte ich fest, dass das Laden der Konfiguration zur Laufzeit nicht funktioniert, wenn die Applikation als JAR verpackt ist.

Um die Situation besser zu erklären, habe ich ein Minimal-Beispiel hochgeladen: https://github.com/melo0187/springboot-kosit

Das Kernproblem scheint folgendes zu sein:

Caused by: org.xml.sax.SAXParseException: schema_reference: Failed to read schema document 'UBL-CommonAggregateComponents-2.1.xsd', because 'nested' access is not allowed due to restri
ction set by the accessExternalSchema property.

Ich konnte dies nur beheben, indem ich eine eigene ResolvingStrategy verwende.
Dabei habe ich vollständig von StrictRelativeResolvingStrategy abgeschrieben und nur noch das scheme "nested" neben "file" als erlaubt definiert, siehe hier.
Damit lässt sich die KoSIT Konfiguration zur Laufzeit auch aus einem JAR heraus erfolgreich initialisieren.

Habe ich etwas falsch gemacht?
Liegt das womöglich an Java 21 und/oder der Verwendung von Spring Boot 3 und wie dabei das JAR erzeugt wird?

Ich überlasse es dem Validator Team zu bewerten, ob mein Ansatz Sinn ergibt und bin gerne bereit einen PR beizutragen, wenn dem so wäre.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant