NoClassDefFoundError
Posted: 31 Mar 2022, 13:46
A NoClassDefFoundError occurs in our applications. It happens only when starting via Openwebstart (not every time). With Oracle-Webstart and locally in Eclipse the error does not occur. Here is an example with the geotools library:
So it seems to have to do with how Openwebstart loads the classes. The necessary libraries are present in the cache, even the classes that are not found. What can we do to prevent this?
Code: Select all
Caused by: java.lang.NoClassDefFoundError at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at
java.lang.reflect.Constructor.newInstance(Unknown Source) at
java.util.concurrent.ForkJoinTask.getThrowableException(Unknown Source) at
java.util.concurrent.ForkJoinTask.reportException(Unknown Source) at
java.util.concurrent.ForkJoinTask.invoke(Unknown Source) at
java.util.stream.ForEachOps$ForEachOp.evaluateParallel(Unknown Source) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(Unknown Source) at
java.util.stream.AbstractPipeline.evaluate(Unknown Source) at
java.util.stream.ReferencePipeline.forEach(Unknown Source) at
java.util.stream.ReferencePipeline$Head.forEach(Unknown Source)
at ...
18 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.geotools.referencing.cs.DefaultCoordinateSystemAxis at
org.geotools.referencing.factory.TransformedAuthorityFactory.<clinit>(TransformedAuthorityFactory.java:105) at
org.geotools.referencing.factory.epsg.DirectEpsgFactory.<init>(DirectEpsgFactory.java:525) at
org.geotools.referencing.factory.epsg.FactoryUsingSQL.<init>(FactoryUsingSQL.java:51) at
org.geotools.referencing.factory.epsg.FactoryUsingAnsiSQL.<init>(FactoryUsingAnsiSQL.java:119) at
org.geotools.referencing.factory.epsg.hsql.FactoryUsingHSQL.<init>(FactoryUsingHSQL.java:51) at
org.geotools.referencing.factory.epsg.hsql.ThreadedHsqlEpsgFactory$1.<init>(ThreadedHsqlEpsgFactory.java:320) at
org.geotools.referencing.factory.epsg.hsql.ThreadedHsqlEpsgFactory.createBackingStore(ThreadedHsqlEpsgFactory.java:320) at
org.geotools.referencing.factory.epsg.ThreadedEpsgFactory.createBackingStore0(ThreadedEpsgFactory.java:393) at
org.geotools.referencing.factory.epsg.ThreadedEpsgFactory.createBackingStore(ThreadedEpsgFactory.java:434) at
org.geotools.referencing.factory.DeferredAuthorityFactory.getBackingStore(DeferredAuthorityFactory.java:114) at
org.geotools.referencing.factory.BufferedAuthorityFactory.isAvailable(BufferedAuthorityFactory.java:245) at
org.geotools.referencing.factory.DeferredAuthorityFactory.isAvailable(DeferredAuthorityFactory.java:100) at
org.geotools.util.factory.FactoryRegistry.isAvailable(FactoryRegistry.java:761) at
org.geotools.util.factory.FactoryRegistry.isAcceptable(FactoryRegistry.java:584) at
org.geotools.util.factory.FactoryRegistry.lambda$getFactories$0(FactoryRegistry.java:267) at
java.util.stream.ReferencePipeline$2$1.accept(Unknown Source) at
java.util.Spliterators$IteratorSpliterator.tryAdvance(Unknown Source) at
java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(Unknown Source) at
java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(Unknown Source) at
java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(Unknown Source) at
java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(Unknown Source) at
java.util.Spliterators$1Adapter.hasNext(Unknown Source)
at org.geotools.util.LazySet.isEmpty(LazySet.java:98) at
org.geotools.referencing.factory.ManyAuthoritiesFactory.<init>
(ManyAuthoritiesFactory.java:131) at
org.geotools.referencing.DefaultAuthorityFactory.getBackingFactory(DefaultAuthorityFactory.java:110) at
org.geotools.referencing.DefaultAuthorityFactory.<init>(DefaultAuthorityFactory.java:63) at
org.geotools.referencing.CRS.getAuthorityFactory(CRS.java:240) at
org.geotools.referencing.CRS.decode(CRS.java:518) at
org.geotools.referencing.CRS.decode(CRS.java:434) at
org.geotools.data.wfs.internal.v2_0.FeatureTypeInfoImpl.getCRS(FeatureTypeInfoImpl.java:140) at
...
java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) at
java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source) at java.util.stream.AbstractPipeline.copyInto(Unknown Source) at
java.util.stream.ForEachOps$ForEachTask.compute(Unknown Source) at
java.util.concurrent.CountedCompleter.exec(Unknown Source) at
java.util.concurrent.ForkJoinTask.doExec(Unknown Source) at
java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source) at
java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) at
java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
WARN (FactoryRegistry.java:1114) - Can't load a service for category "CRSAuthorityFactory". Cause is "ServiceConfigurationError:
org.opengis.referencing.crs.CRSAuthorityFactory: Provider org.geotools.referencing.factory.epsg.CartesianAuthorityFactory could not be instantiated". java.util.ServiceConfigurationError: org.opengis.referencing.crs.CRSAuthorityFactory: Provider org.geotools.referencing.factory.epsg.CartesianAuthorityFactory could not be instantiated at
java.util.ServiceLoader.fail(Unknown Source) at
java.util.ServiceLoader.access$100(Unknown Source) at
java.util.ServiceLoader$LazyIterator.nextService(Unknown Source) at
java.util.ServiceLoader$LazyIterator.next(Unknown Source) at
java.util.ServiceLoader$1.next(Unknown Source) at
org.geotools.util.factory.FactoryRegistry.register(FactoryRegistry.java:967) at
org.geotools.util.factory.FactoryRegistry.scanForPlugins(FactoryRegistry.java:873) at
org.geotools.util.factory.FactoryRegistry.scanForPluginsIfNeeded(FactoryRegistry.java:903) at
org.geotools.util.factory.FactoryRegistry.getFactories(FactoryRegistry.java:265) at
org.geotools.referencing.ReferencingFactoryFinder.getFactories(ReferencingFactoryFinder.java:183) at
org.geotools.referencing.ReferencingFactoryFinder.getCRSAuthorityFactories(ReferencingFactoryFinder.java:453) at
org.geotools.referencing.DefaultAuthorityFactory.getBackingFactory(DefaultAuthorityFactory.java:83) at
org.geotools.referencing.DefaultAuthorityFactory.<init>(DefaultAuthorityFactory.java:63) at
org.geotools.referencing.CRS.getAuthorityFactory(CRS.java:240) at
org.geotools.referencing.CRS.decode(CRS.java:518) at
org.geotools.referencing.CRS.decode(CRS.java:434) at
org.geotools.data.wfs.internal.v2_0.FeatureTypeInfoImpl.getCRS(FeatureTypeInfoImpl.java:140) at
...
java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) at
java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source) at
java.util.stream.AbstractPipeline.copyInto(Unknown Source) at
java.util.stream.ForEachOps$ForEachTask.compute(Unknown Source) at
java.util.concurrent.CountedCompleter.exec(Unknown Source) at
java.util.concurrent.ForkJoinTask.doExec(Unknown Source) at
java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source) at
java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) at
java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class
org.geotools.referencing.factory.epsg.CartesianAuthorityFactory at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at
java.lang.reflect.Constructor.newInstance(Unknown Source) at
java.lang.Class.newInstance(Unknown Source) ... 33 more
WARN (FactoryRegistry.java:1114) - Can't load a service for category "CRSAuthorityFactory". Cause is "ServiceConfigurationError: org.opengis.referencing.crs.CRSAuthorityFactory: Provider org.geotools.referencing.factory.epsg.CartesianAuthorityFactory could not be instantiated". java.util.ServiceConfigurationError: org.opengis.referencing.crs.CRSAuthorityFactory: Provider org.geotools.referencing.factory.epsg.CartesianAuthorityFactory could not be instantiated at
java.util.ServiceLoader.fail(Unknown Source) at
java.util.ServiceLoader.access$100(Unknown Source) at
java.util.ServiceLoader$LazyIterator.nextService(Unknown Source) at
java.util.ServiceLoader$LazyIterator.next(Unknown Source) at
java.util.ServiceLoader$1.next(Unknown Source) at
org.geotools.util.factory.FactoryRegistry.register(FactoryRegistry.java:967) at
org.geotools.util.factory.FactoryRegistry.scanForPlugins(FactoryRegistry.java:873) at
org.geotools.util.factory.FactoryRegistry.scanForPluginsIfNeeded(FactoryRegistry.java:903) at
org.geotools.util.factory.FactoryRegistry.getFactories(FactoryRegistry.java:265) at
org.geotools.referencing.ReferencingFactoryFinder.getFactories(ReferencingFactoryFinder.java:183) at
org.geotools.referencing.ReferencingFactoryFinder.getCRSAuthorityFactories(ReferencingFactoryFinder.java:453) at
org.geotools.referencing.DefaultAuthorityFactory.getBackingFactory(DefaultAuthorityFactory.java:83) at
org.geotools.referencing.DefaultAuthorityFactory.<init>(DefaultAuthorityFactory.java:63) at
org.geotools.referencing.CRS.getAuthorityFactory(CRS.java:240) at
org.geotools.referencing.CRS.decode(CRS.java:518) at
org.geotools.referencing.CRS.decode(CRS.java:434) at
org.geotools.data.wfs.internal.v2_0.FeatureTypeInfoImpl.getCRS(FeatureTypeInfoImpl.java:140) at
...
java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) at
java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source) at
java.util.stream.AbstractPipeline.copyInto(Unknown Source) at
java.util.stream.ForEachOps$ForEachTask.compute(Unknown Source) at
java.util.concurrent.CountedCompleter.exec(Unknown Source) at
java.util.concurrent.ForkJoinTask.doExec(Unknown Source) at
java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source) at
java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) at
java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError at
si.uom.NonSI.<clinit>(NonSI.java:128) at
org.geotools.referencing.cs.DefaultCoordinateSystemAxis.<clinit>(DefaultCoordinateSystemAxis.java:107) at
org.geotools.referencing.cs.AbstractCS.<clinit>(AbstractCS.java:79) at
org.geotools.referencing.crs.DefaultEngineeringCRS.<clinit>(DefaultEngineeringCRS.java:78) at
org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.<clinit>(CartesianAuthorityFactory.java:54) at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at
java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.Class.newInstance(Unknown Source)
...
33 more Caused by: java.lang.IllegalArgumentException: NumberSystem tech.units.indriya.function.DefaultNumberSystem not found at
tech.units.indriya.function.Calculus.getNumberSystem(Calculus.java:118) at
tech.units.indriya.function.Calculus.currentNumberSystem(Calculus.java:90) at
tech.units.indriya.AbstractUnit.divide(AbstractUnit.java:477) at
tech.units.indriya.AbstractUnit.divide(AbstractUnit.java:368) at
tech.units.indriya.unit.Units.<clinit>(Units.java:231)
... 43 more