I'm trying to use the Apache Daffodil library inside a native linux executable produced with Quarkus.
Everything is compiled inside a virutal machine running AlmaLinux 8.10 with Maven following the getting started guide.
I have put the code from this Daffodil examples github into a Quarkus REST project.
Everything is working fine when running quarkus dev
, but it seems like the produced native executable doesn't contain XSD files included in this transitive Daffodil dependency
The executable is produced using the quarkus build --native
command.
I get the following error when trying to acces the endpoint :
ERROR [io.qua.ver.htt.run.QuarkusErrorHandler] (executor-thread-1) HTTP Request to /hello failed, error id: 981dd0ac-6994-4ab7-8975-8bd93542ea90-1: java.lang.RuntimeException: java.io.FileNotFoundException: Required resource /org/apache/daffodil/xsd/XMLSchema_for_DFDL.xsd was not found.
Classpath is unknown.
at org.acme.GreetingResource.hello(GreetingResource.java:22)
at org.acme.GreetingResource$quarkusrestinvoker$hello_e747664148511e1e5212d3e0f4b40d45c56ab8a1.invoke(Unknown Source)
at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)
at org.jboss.resteasy.reactivemon.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
at io.quarkus.vertx.core.runtime.VertxCoreRecorder$15.runWith(VertxCoreRecorder.java:637)
at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2675)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2654)
at org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1627)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1594)
at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:11)
at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:11)
at ioty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
at [email protected]/java.lang.Thread.run(Thread.java:1583)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:896)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:872)
Caused by: java.io.FileNotFoundException: Required resource /org/apache/daffodil/xsd/XMLSchema_for_DFDL.xsd was not found.
Classpath is unknown.
at org.apache.daffodil.lib.util.Misc$.getRequiredResource(Misc.scala:269)
at org.apache.daffodil.lib.xml.XMLUtils$.schemaForDFDLSchemas$lzycompute(XMLUtils.scala:57)
at org.apache.daffodil.lib.xml.XMLUtils$.schemaForDFDLSchemas(XMLUtils.scala:56)
at org.apache.daffodil.lib.xml.DaffodilXMLLoader.validateAsDFDLSchema(DaffodilXMLLoader.scala:540)
at org.apache.daffodil.core.dsom.DFDLSchemaFile.$anonfun$iiXMLSchemaDocument$1(DFDLSchemaFile.scala:216)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.DFDLSchemaFile.iiXMLSchemaDocument$lzycompute(DFDLSchemaFile.scala:208)
at org.apache.daffodil.core.dsom.DFDLSchemaFile.iiXMLSchemaDocument(DFDLSchemaFile.scala:208)
at org.apache.daffodil.core.dsom.Import.$anonfun$mapPair$3(Import.scala:68)
at scala.Option.getOrElse(Option.scala:189)
at org.apache.daffodil.core.dsom.Import.$anonfun$mapPair$1(Import.scala:47)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.Import.mapPair$lzycompute(Import.scala:45)
at org.apache.daffodil.core.dsom.Import.mapPair(Import.scala:45)
at org.apache.daffodil.core.dsom.IIBase.$anonfun$notSeenThisBefore$1(IIBase.scala:149)
at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:23)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.IIBase.notSeenThisBefore$lzycompute(IIBase.scala:148)
at org.apache.daffodil.core.dsom.IIBase.notSeenThisBefore(IIBase.scala:148)
at org.apache.daffodil.core.dsom.IIBase.$anonfun$iiSchemaFileMaybe$1(IIBase.scala:255)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.IIBase.iiSchemaFileMaybe$lzycompute(IIBase.scala:254)
at org.apache.daffodil.core.dsom.IIBase.iiSchemaFileMaybe(IIBase.scala:254)
at org.apache.daffodil.core.dsom.IIBase.$anonfun$seenAfter$1(IIBase.scala:178)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.IIBase.seenAfter$lzycompute(IIBase.scala:177)
at org.apache.daffodil.core.dsom.IIBase.seenAfter(IIBase.scala:177)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.$anonfun$getImportsOrIncludes$1(SchemaDocIncludesAndImportsMixin.scala:214)
at scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:196)
at scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:194)
at scala.collection.Iterator.foreach(Iterator.scala:943)
at scala.collection.Iterator.foreach$(Iterator.scala:943)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1431)
at scala.collection.IterableLike.foreach(IterableLike.scala:74)
at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
at scala.collection.AbstractIterable.foreach(Iterable.scala:56)
at scala.collection.TraversableOnce.foldLeft(TraversableOnce.scala:199)
at scala.collection.TraversableOnce.foldLeft$(TraversableOnce.scala:192)
at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:108)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.getImportsOrIncludes(SchemaDocIncludesAndImportsMixin.scala:211)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.getImportsOrIncludes$(SchemaDocIncludesAndImportsMixin.scala:206)
at org.apache.daffodil.core.dsom.XMLSchemaDocument.getImportsOrIncludes(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.$anonfun$ismli_$1(SchemaDocIncludesAndImportsMixin.scala:225)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$ismli_(SchemaDocIncludesAndImportsMixin.scala:224)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$ismli_$(SchemaDocIncludesAndImportsMixin.scala:224)
at org.apache.daffodil.core.dsom.XMLSchemaDocument$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$ismli_$lzycompute(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.XMLSchemaDocument$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$ismli_(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.importStatementsMap(SchemaDocIncludesAndImportsMixin.scala:222)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.importStatementsMap$(SchemaDocIncludesAndImportsMixin.scala:222)
at org.apache.daffodil.core.dsom.XMLSchemaDocument.importStatementsMap(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.$anonfun$sali_$1(SchemaDocIncludesAndImportsMixin.scala:232)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$sali_(SchemaDocIncludesAndImportsMixin.scala:231)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$sali_$(SchemaDocIncludesAndImportsMixin.scala:231)
at org.apache.daffodil.core.dsom.XMLSchemaDocument$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$sali_$lzycompute(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.XMLSchemaDocument$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$sali_(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.seenAfter(SchemaDocIncludesAndImportsMixin.scala:229)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.seenAfter$(SchemaDocIncludesAndImportsMixin.scala:229)
at org.apache.daffodil.core.dsom.XMLSchemaDocument.seenAfter(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.SchemaSetIncludesAndImportsMixin.$anonfun$allSchemaFiles$1(SchemaSetIncludesAndImportsMixins.scala:66)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.SchemaSetIncludesAndImportsMixin.allSchemaFiles(SchemaSetIncludesAndImportsMixins.scala:64)
at org.apache.daffodil.core.dsom.SchemaSetIncludesAndImportsMixin.allSchemaFiles$(SchemaSetIncludesAndImportsMixins.scala:64)
at org.apache.daffodil.core.dsom.SchemaSet.allSchemaFiles$lzycompute(SchemaSet.scala:92)
at org.apache.daffodil.core.dsom.SchemaSet.allSchemaFiles(SchemaSet.scala:92)
at org.apache.daffodil.core.dsom.SchemaSet.$anonfun$isValid$2(SchemaSet.scala:178)
at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:23)
at org.apache.daffodil.lib.oolag.OOLAG$.keepGoing(OOLAG.scala:65)
at org.apache.daffodil.core.dsom.SchemaSet.isValid$lzycompute(SchemaSet.scala:177)
at org.apache.daffodil.core.dsom.SchemaSet.isValid(SchemaSet.scala:172)
at org.apache.daffodil.core.dsom.SchemaSet.isError(SchemaSet.scala:554)
at org.apache.daffodil.corepiler.ProcessorFactory.isError(Compiler.scala:147)
at org.apache.daffodil.corepiler.ProcessorFactory.diagnostics(Compiler.scala:113)
at org.apache.daffodil.corepiler.ProcessorFactory.getDiagnostics(Compiler.scala:117)
at org.apache.daffodil.japi.WithDiagnostics.getDiagnostics(Daffodil.scala:341)
at org.acme.HelloWorld.start(HelloWorld.java:59)
at org.acme.GreetingResource.hello(GreetingResource.java:20)
... 16 more
My first guess was that it's a quarkus configuration problem, but I can't find what's causing it. I tried explicitly adding the file with quarkus.native.resources.includes
, it didn't change anything.
The whole project is downloadable on github here.
Any idea ?
I'm trying to use the Apache Daffodil library inside a native linux executable produced with Quarkus.
Everything is compiled inside a virutal machine running AlmaLinux 8.10 with Maven following the getting started guide.
I have put the code from this Daffodil examples github into a Quarkus REST project.
Everything is working fine when running quarkus dev
, but it seems like the produced native executable doesn't contain XSD files included in this transitive Daffodil dependency
The executable is produced using the quarkus build --native
command.
I get the following error when trying to acces the endpoint :
ERROR [io.qua.ver.htt.run.QuarkusErrorHandler] (executor-thread-1) HTTP Request to /hello failed, error id: 981dd0ac-6994-4ab7-8975-8bd93542ea90-1: java.lang.RuntimeException: java.io.FileNotFoundException: Required resource /org/apache/daffodil/xsd/XMLSchema_for_DFDL.xsd was not found.
Classpath is unknown.
at org.acme.GreetingResource.hello(GreetingResource.java:22)
at org.acme.GreetingResource$quarkusrestinvoker$hello_e747664148511e1e5212d3e0f4b40d45c56ab8a1.invoke(Unknown Source)
at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)
at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
at io.quarkus.vertx.core.runtime.VertxCoreRecorder$15.runWith(VertxCoreRecorder.java:637)
at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2675)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2654)
at org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1627)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1594)
at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:11)
at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:11)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
at [email protected]/java.lang.Thread.run(Thread.java:1583)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:896)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:872)
Caused by: java.io.FileNotFoundException: Required resource /org/apache/daffodil/xsd/XMLSchema_for_DFDL.xsd was not found.
Classpath is unknown.
at org.apache.daffodil.lib.util.Misc$.getRequiredResource(Misc.scala:269)
at org.apache.daffodil.lib.xml.XMLUtils$.schemaForDFDLSchemas$lzycompute(XMLUtils.scala:57)
at org.apache.daffodil.lib.xml.XMLUtils$.schemaForDFDLSchemas(XMLUtils.scala:56)
at org.apache.daffodil.lib.xml.DaffodilXMLLoader.validateAsDFDLSchema(DaffodilXMLLoader.scala:540)
at org.apache.daffodil.core.dsom.DFDLSchemaFile.$anonfun$iiXMLSchemaDocument$1(DFDLSchemaFile.scala:216)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.DFDLSchemaFile.iiXMLSchemaDocument$lzycompute(DFDLSchemaFile.scala:208)
at org.apache.daffodil.core.dsom.DFDLSchemaFile.iiXMLSchemaDocument(DFDLSchemaFile.scala:208)
at org.apache.daffodil.core.dsom.Import.$anonfun$mapPair$3(Import.scala:68)
at scala.Option.getOrElse(Option.scala:189)
at org.apache.daffodil.core.dsom.Import.$anonfun$mapPair$1(Import.scala:47)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.Import.mapPair$lzycompute(Import.scala:45)
at org.apache.daffodil.core.dsom.Import.mapPair(Import.scala:45)
at org.apache.daffodil.core.dsom.IIBase.$anonfun$notSeenThisBefore$1(IIBase.scala:149)
at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:23)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.IIBase.notSeenThisBefore$lzycompute(IIBase.scala:148)
at org.apache.daffodil.core.dsom.IIBase.notSeenThisBefore(IIBase.scala:148)
at org.apache.daffodil.core.dsom.IIBase.$anonfun$iiSchemaFileMaybe$1(IIBase.scala:255)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.IIBase.iiSchemaFileMaybe$lzycompute(IIBase.scala:254)
at org.apache.daffodil.core.dsom.IIBase.iiSchemaFileMaybe(IIBase.scala:254)
at org.apache.daffodil.core.dsom.IIBase.$anonfun$seenAfter$1(IIBase.scala:178)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.IIBase.seenAfter$lzycompute(IIBase.scala:177)
at org.apache.daffodil.core.dsom.IIBase.seenAfter(IIBase.scala:177)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.$anonfun$getImportsOrIncludes$1(SchemaDocIncludesAndImportsMixin.scala:214)
at scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:196)
at scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:194)
at scala.collection.Iterator.foreach(Iterator.scala:943)
at scala.collection.Iterator.foreach$(Iterator.scala:943)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1431)
at scala.collection.IterableLike.foreach(IterableLike.scala:74)
at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
at scala.collection.AbstractIterable.foreach(Iterable.scala:56)
at scala.collection.TraversableOnce.foldLeft(TraversableOnce.scala:199)
at scala.collection.TraversableOnce.foldLeft$(TraversableOnce.scala:192)
at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:108)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.getImportsOrIncludes(SchemaDocIncludesAndImportsMixin.scala:211)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.getImportsOrIncludes$(SchemaDocIncludesAndImportsMixin.scala:206)
at org.apache.daffodil.core.dsom.XMLSchemaDocument.getImportsOrIncludes(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.$anonfun$ismli_$1(SchemaDocIncludesAndImportsMixin.scala:225)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.org$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$ismli_(SchemaDocIncludesAndImportsMixin.scala:224)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.org$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$ismli_$(SchemaDocIncludesAndImportsMixin.scala:224)
at org.apache.daffodil.core.dsom.XMLSchemaDocument.org$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$ismli_$lzycompute(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.XMLSchemaDocument.org$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$ismli_(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.importStatementsMap(SchemaDocIncludesAndImportsMixin.scala:222)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.importStatementsMap$(SchemaDocIncludesAndImportsMixin.scala:222)
at org.apache.daffodil.core.dsom.XMLSchemaDocument.importStatementsMap(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.$anonfun$sali_$1(SchemaDocIncludesAndImportsMixin.scala:232)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.org$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$sali_(SchemaDocIncludesAndImportsMixin.scala:231)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.org$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$sali_$(SchemaDocIncludesAndImportsMixin.scala:231)
at org.apache.daffodil.core.dsom.XMLSchemaDocument.org$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$sali_$lzycompute(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.XMLSchemaDocument.org$apache$daffodil$core$dsom$SchemaDocIncludesAndImportsMixin$$sali_(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.seenAfter(SchemaDocIncludesAndImportsMixin.scala:229)
at org.apache.daffodil.core.dsom.SchemaDocIncludesAndImportsMixin.seenAfter$(SchemaDocIncludesAndImportsMixin.scala:229)
at org.apache.daffodil.core.dsom.XMLSchemaDocument.seenAfter(SchemaDocument.scala:68)
at org.apache.daffodil.core.dsom.SchemaSetIncludesAndImportsMixin.$anonfun$allSchemaFiles$1(SchemaSetIncludesAndImportsMixins.scala:66)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.liftedTree1$1(OOLAG.scala:693)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny$lzycompute(OOLAG.scala:691)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValueBase.valueAsAny(OOLAG.scala:688)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value$lzycompute(OOLAG.scala:739)
at org.apache.daffodil.lib.oolag.OOLAG$OOLAGValue.value(OOLAG.scala:739)
at org.apache.daffodil.core.dsom.SchemaSetIncludesAndImportsMixin.allSchemaFiles(SchemaSetIncludesAndImportsMixins.scala:64)
at org.apache.daffodil.core.dsom.SchemaSetIncludesAndImportsMixin.allSchemaFiles$(SchemaSetIncludesAndImportsMixins.scala:64)
at org.apache.daffodil.core.dsom.SchemaSet.allSchemaFiles$lzycompute(SchemaSet.scala:92)
at org.apache.daffodil.core.dsom.SchemaSet.allSchemaFiles(SchemaSet.scala:92)
at org.apache.daffodil.core.dsom.SchemaSet.$anonfun$isValid$2(SchemaSet.scala:178)
at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:23)
at org.apache.daffodil.lib.oolag.OOLAG$.keepGoing(OOLAG.scala:65)
at org.apache.daffodil.core.dsom.SchemaSet.isValid$lzycompute(SchemaSet.scala:177)
at org.apache.daffodil.core.dsom.SchemaSet.isValid(SchemaSet.scala:172)
at org.apache.daffodil.core.dsom.SchemaSet.isError(SchemaSet.scala:554)
at org.apache.daffodil.core.compiler.ProcessorFactory.isError(Compiler.scala:147)
at org.apache.daffodil.core.compiler.ProcessorFactory.diagnostics(Compiler.scala:113)
at org.apache.daffodil.core.compiler.ProcessorFactory.getDiagnostics(Compiler.scala:117)
at org.apache.daffodil.japi.WithDiagnostics.getDiagnostics(Daffodil.scala:341)
at org.acme.HelloWorld.start(HelloWorld.java:59)
at org.acme.GreetingResource.hello(GreetingResource.java:20)
... 16 more
My first guess was that it's a quarkus configuration problem, but I can't find what's causing it. I tried explicitly adding the file with quarkus.native.resources.includes
, it didn't change anything.
The whole project is downloadable on github here.
Any idea ?
Share Improve this question edited Feb 7 at 16:04 Phantom asked Feb 7 at 16:02 PhantomPhantom 32 bronze badges 1- Please provide enough code so others can better understand or reproduce the problem. – Community Bot Commented Feb 7 at 19:24
1 Answer
Reset to default -1In your GitHub project, the value you use for the quarkus.native.resources.includes
attribute does not target the good location.
For resources from your own project, you should not type the resources
folder's name, as stated in the documentation.
For resources from third-party jar (from direct or transitive dependencies), you should use a full path, but without a leading /
character.
quarkus.native.resources.includes = helloWorld.dat,helloWorld.dfdl.xsd,helloWorld.xslt,org/apache/daffodil/xsd/XMLSchema_for_DFDL.xsd
With this current value, the mvn install -Dnative
still generates errors due to the xerces' use of reflection and xerces' missing resources files.
As stated in the documentation, "The easiest way to register a class for reflection is to use the @RegisterForReflection annotation" (see code below).
package org.acme;
import io.quarkus.runtime.annotations.RegisterForReflection;
@RegisterForReflection(targets={ org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl.class, org.apache.xerces.impl.dv.xs.SchemaDVFactoryImpl.class})
public class MyReflectionConfiguration {
}
You need to update your application.properties
file too to include xerces' missing resources files.
quarkus.native.resources.includes = helloWorld.dat,helloWorld.dfdl.xsd,helloWorld.xslt,org/apache/daffodil/xsd/XMLSchema_for_DFDL.xsd,org/apache/xerces/impl/msg/XMLSchemaMessages*.properties
At this step, your project should compile, generate a native image and trigger test for the hello endpoint.
What I see now is an error due to your dfdl schema (your code reach a System.exit(1);
call) with this text in your test.txt file.
Schema Definition Error: Error loading schema due to src-resolve: Cannot resolve the name 'dfdl:anyOther' to a(n) 'attribute group' component.
Maybe there are dependencies to include so that your schema file is correct ?