Stream: implementers
Topic: org.hl7.fhir.validator.jar vs validator_cli.jar
David Gutknecht (Aug 06 2020 at 06:34):
Hello,
http://hl7.org/fhir/validator/ include two links.
- Download the validator under https://storage.googleapis.com/ig-build/org.hl7.fhir.validator.jar that gives you org.hl7.fhir.validator.jar
- Validator Documentation that is linked to confluence https://confluence.hl7.org/display/FHIR/Using+the+FHIR+Validator
But in confluence there is also a link to download the latest version of the validator that is different
https://github.com/hapifhir/org.hl7.fhir.core/releases/latest/download/validator_cli.jar it gives you validator_cli.jar
And It strange because I can validate this json mni-patientOverview-bundle-example1b.json with org.hl7.fhir.validator.jar
using command line java -Duser.language=en -jar org.hl7.fhir.validator.jar mni-patientOverview-bundle-example1.json -version 4.0 -ig https://mednet.swiss/fhir
But when I use validator_cli.jar with the same command line it returns me a Nullpointer exception,
below the stack trace:
fhir
FHIR Validation tool Version 5.0.18 (Git# 18cf563e7875). Built 2020-08-03T21:07:57.905Z (57 hours old)
Detected Java version: 10.0.2 from C:\Program Files\Java\jre-10.0.2 on amd64 (64bit). 2026MB available
Arguments: mni-patientOverview-bundle-example1.json -version 4.0 -ig https://mednet.swiss/fhir
Directories: Current = C:\Users\david.gutknecht.NOVCOM\Documents\Projects\mednet\interface-documentation\FHIR\ImplementationGuide, Package Cache = C:\Users\david.gutknecht.NOVCOM\.fhir\packages
.. FHIR Version 4.0, definitions from hl7.fhir.r4.core#4.0.1
.. connect to tx server @ http://tx.fhir.org
(v4.0.1)
- .. load IG from https://mednet.swiss/fhir
- .. load IG from ch.fhir.ig.ch-core#1.0.0
- .. load IG from ch.fhir.ig.ch-epr-term#current
- .. load IG from ch.fhir.ig.ch-epr-term#2.0.3
- .. load IG from ch.fhir.ig.ch-emed#0.1.0
- .. load IG from ch.fhir.ig.ch-core#current
.. validate [mni-patientOverview-bundle-example1.json]
Terminology server: Check for supported code systems for http://loinc.org
Validation Infrastructure fail validating mni-patientOverview-bundle-example1.json: null
Exception in thread "main" org.hl7.fhir.exceptions.FHIRException: java.lang.NullPointerException
at org.hl7.fhir.validation.ValidationEngine.validate(ValidationEngine.java:1263)
at org.hl7.fhir.validation.cli.services.ValidationService.validateSources(ValidationService.java:73)
at org.hl7.fhir.validation.Validator.main(Validator.java:208)
Caused by: java.lang.NullPointerException
at org.hl7.fhir.utilities.cache.BasePackageCacheManager.getPackageId(BasePackageCacheManager.java:138)
at org.hl7.fhir.utilities.cache.BasePackageCacheManager.getPackageId(BasePackageCacheManager.java:121)
at org.hl7.fhir.utilities.cache.FilesystemPackageCacheManager.getPackageId(FilesystemPackageCacheManager.java:534)
at org.hl7.fhir.validation.cli.services.StandAloneValidatorFetcher.resolveURL(StandAloneValidatorFetcher.java:65)
at org.hl7.fhir.validation.ValidationEngine.resolveURL(ValidationEngine.java:1882)
at org.hl7.fhir.validation.instance.InstanceValidator.checkPrimitive(InstanceValidator.java:1864)
at org.hl7.fhir.validation.instance.InstanceValidator.checkChild(InstanceValidator.java:4003)
at org.hl7.fhir.validation.instance.InstanceValidator.validateElement(InstanceValidator.java:3867)
at org.hl7.fhir.validation.instance.InstanceValidator.checkChild(InstanceValidator.java:4130)
at org.hl7.fhir.validation.instance.InstanceValidator.validateElement(InstanceValidator.java:3867)
at org.hl7.fhir.validation.instance.InstanceValidator.startInner(InstanceValidator.java:3610)
at org.hl7.fhir.validation.instance.InstanceValidator.start(InstanceValidator.java:3497)
at org.hl7.fhir.validation.instance.InstanceValidator.validateResource(InstanceValidator.java:4595)
at org.hl7.fhir.validation.instance.InstanceValidator.checkReference(InstanceValidator.java:2422)
at org.hl7.fhir.validation.instance.InstanceValidator.checkChild(InstanceValidator.java:4024)
at org.hl7.fhir.validation.instance.InstanceValidator.validateElement(InstanceValidator.java:3867)
at org.hl7.fhir.validation.instance.InstanceValidator.startInner(InstanceValidator.java:3610)
at org.hl7.fhir.validation.instance.InstanceValidator.start(InstanceValidator.java:3521)
at org.hl7.fhir.validation.instance.InstanceValidator.validateResource(InstanceValidator.java:4595)
at org.hl7.fhir.validation.instance.InstanceValidator.validateContains(InstanceValidator.java:3767)
at org.hl7.fhir.validation.instance.InstanceValidator.checkChild(InstanceValidator.java:4038)
at org.hl7.fhir.validation.instance.InstanceValidator.validateElement(InstanceValidator.java:3867)
at org.hl7.fhir.validation.instance.InstanceValidator.checkChild(InstanceValidator.java:4055)
at org.hl7.fhir.validation.instance.InstanceValidator.validateElement(InstanceValidator.java:3867)
at org.hl7.fhir.validation.instance.InstanceValidator.startInner(InstanceValidator.java:3610)
at org.hl7.fhir.validation.instance.InstanceValidator.start(InstanceValidator.java:3497)
at org.hl7.fhir.validation.instance.InstanceValidator.validateResource(InstanceValidator.java:4595)
at org.hl7.fhir.validation.instance.InstanceValidator.validate(InstanceValidator.java:685)
at org.hl7.fhir.validation.instance.InstanceValidator.validate(InstanceValidator.java:538)
at org.hl7.fhir.validation.ValidationEngine.validate(ValidationEngine.java:1352)
at org.hl7.fhir.validation.ValidationEngine.validate(ValidationEngine.java:1256)
... 2 more
Any idea ?
David Gutknecht (Aug 06 2020 at 06:39):
Maybe I found a part of the answer:
validator_cli.jar return : FHIR Validation tool Version 5.0.18 (Git# 18cf563e7875). Built 2020-08-03T21:07:57.905Z (57 hours old)
org.hl7.fhir.validator.jar returns : FHIR Validation tool Version 5.0.7-SNAPSHOT (Git# 6bc790d98b04). Built 2020-06-07T08:35:37.25+10:00 (60 days old)
Oliver Egger (Aug 06 2020 at 06:42):
the newer one linked from confluence is the latest one (validator_cli.jar)
Oliver Egger (Aug 06 2020 at 06:43):
can you refer to your ig locally? I assume the validator does not know hot resolve your ig https://mednet.swiss/fhir locally
David Gutknecht (Aug 06 2020 at 06:43):
This would mean that validator_cli generates some nullpointer exception
Oliver Egger (Aug 06 2020 at 06:46):
yes it looks like it cannot resolve a fhir ig package
David Gutknecht (Aug 06 2020 at 06:49):
https://mednet.swiss/fhir is valid, and works with the older version of the validator
I just tryed with following command line :
java -Duser.language=en -jar validator_cli.jar mni-patientOverview-bundle-example1.json -version 4.0 -ig output/
Same result
Validation Infrastructure fail validating mni-patientOverview-bundle-example1.json: null
Exception in thread "main" org.hl7.fhir.exceptions.FHIRException: java.lang.NullPointerException
at org.hl7.fhir.validation.ValidationEngine.validate(ValidationEngine.java:1263)
at org.hl7.fhir.validation.cli.services.ValidationService.validateSources(ValidationService.java:73)
at org.hl7.fhir.validation.Validator.main(Validator.java:208)
Caused by: java.lang.NullPointerException
at org.hl7.fhir.utilities.cache.BasePackageCacheManager.getPackageId(BasePackageCacheManager.java:138)
at org.hl7.fhir.utilities.cache.BasePackageCacheManager.getPackageId(BasePackageCacheManager.java:121)
at org.hl7.fhir.utilities.cache.FilesystemPackageCacheManager.getPackageId(FilesystemPackageCacheManager.java:534)
at org.hl7.fhir.validation.cli.services.StandAloneValidatorFetcher.resolveURL(StandAloneValidatorFetcher.java:65)
at org.hl7.fhir.validation.ValidationEngine.resolveURL(ValidationEngine.java:1882)
at org.hl7.fhir.validation.instance.InstanceValidator.checkPrimitive(InstanceValidator.java:1864)
Grahame Grieve (Aug 06 2020 at 07:38):
already fixed that - next release
David Gutknecht (Aug 06 2020 at 08:04):
Nice ! Thanks !!
Last updated: Apr 12 2022 at 19:14 UTC