Packr -> Implementation of JAXB-API has not been found

Diskutiere Packr -> Implementation of JAXB-API has not been found im Deployment Bereich.
sascha-sphw

sascha-sphw

Hallo zusammen,

ich sehe den Wald vor lauter Bäumen nicht mehr. Ich habe eine openjfx Applikation mit JDK 11 erstellt welche mit JAXB XML Dateien liest und schreibt.
Mit Packr erstelle ich einen Windows Wrapper und hier bekomme ich die Fehlermeldung, dass die JAXB Implementierung nicht gefunden wird.

Java:
de.sphw.testtool.dao.xml.JaxbDaoBase->getRecentFiles:L27 - Implementation of JAXB-API has not been found on module path or classpath.
javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:232) ~[jakarta.xml.bind-api-2.3.2.jar:2.3.2]
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:375) ~[jakarta.xml.bind-api-2.3.2.jar:2.3.2]
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:691) ~[jakarta.xml.bind-api-2.3.2.jar:2.3.2]
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:632) ~[jakarta.xml.bind-api-2.3.2.jar:2.3.2]
    at de.sphw.testtool.dao.xml.JaxbDaoBase.load(JaxbDaoBase.java:21) ~[testtool.jar:?]
    at de.sphw.testtool.dao.xml.RecentFilesDaoXmlImpl.getRecentFiles(RecentFilesDaoXmlImpl.java:24) ~[testtool.jar:?]
    at java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source) [?:?]
    at java.util.concurrent.CompletableFuture$AsyncSupply.exec(Unknown Source) [?:?]
    at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) [?:?]
    at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) [?:?]
    at java.util.concurrent.ForkJoinPool.scan(Unknown Source) [?:?]
    at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) [?:?]
    at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) [?:?]
Caused by: java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory
    at jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) ~[?:?]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
    at javax.xml.bind.ServiceLoaderUtil.nullSafeLoadClass(ServiceLoaderUtil.java:92) ~[jakarta.xml.bind-api-2.3.2.jar:2.3.2]
    at javax.xml.bind.ServiceLoaderUtil.safeLoadClass(ServiceLoaderUtil.java:125) ~[jakarta.xml.bind-api-2.3.2.jar:2.3.2]
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:230) ~[jakarta.xml.bind-api-2.3.2.jar:2.3.2]
    ... 12 more
Wenn ich die Applikation über die mit Jlink gebaute custom jre laufen lasse, funktioniert alles ohne Fehler.
Code:
custom_jre\bin\java.exe -jar testtool.jar
Die Implementierung liegt ja im lib Ordner und alle anderen libs werden auch gefunden.
Ich verwende die glassfish Referenzimplementierung.
Code:
        <!-- https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime -->
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>2.3.2</version>
        </dependency>
Den Wrapper habe ich mit folgendem Befehl gebaut.
Code:
java -jar ${PACKR_HOME}\\packr.jar --platform windows64 --jdk \"${WORKSPACE}\\custom_jre\" --executable TestTool --classpath testtool.jar --mainclass de.sphw.testtool.TestToolStarter --verbose --resources lib --vmargs \"add-opens java.base/java.lang=ALL-UNNAMED\" --output \"${WORKSPACE}\\target\"
Habt ihr eine Ahnung warum er die Implementierung nicht findet?
Danke im voraus
Sascha
 
Thema: 

Packr -> Implementation of JAXB-API has not been found

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben