java.lang.ClassNotFoundException: javax.xml.bind.JAXBElement bei hbci4java mit Java 11

fabfour

Betreff:

java.lang.ClassNotFoundException: javax.xml.bind.JAXBElement bei hbci4java mit Java 11

 ·  Gepostet: 02.12.2019 - 12:29 Uhr  ·  #152524
Hallo,

ich habe das Problem, dass ich hbci4java mit java 11 nicht benutzen kann.
Code

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBElement
        at org.kapott.hbci.sepa.jaxb.pain_001_001_03.ObjectFactory.createDocument(ObjectFactory.java:345)
        at org.kapott.hbci.GV.generators.GenUebSEPA00100103.generate(GenUebSEPA00100103.java:151)
        at org.kapott.hbci.GV.generators.GenUebSEPA00100103.generate(GenUebSEPA00100103.java:43)
        at org.kapott.hbci.GV.AbstractSEPAGV.createSEPAFromParams(AbstractSEPAGV.java:296)
        at org.kapott.hbci.GV.AbstractSEPAGV.verifyConstraints(AbstractSEPAGV.java:348)
        at org.kapott.hbci.manager.HBCIDialog.addTask(HBCIDialog.java:496)
        at org.kapott.hbci.manager.HBCIHandler.addJobToDialog(HBCIHandler.java:324)
        at org.kapott.hbci.GV.HBCIJobImpl.addToQueue(HBCIJobImpl.java:1194)
        at org.kapott.hbci.tools.HBCIBatch.main(HBCIBatch.java:397)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBElement
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 9 more

wenn ich versuche hbci4java mit maven zu bauen kommt folgendes als build message:
Code

...
[INFO] --- maven-jaxb22-plugin:0.14.0:generate (camt.052.001.07) @ hbci4j-core ---
[WARNING] The POM for org.glassfish.jaxb:jaxb-runtime:jar:2.2.11 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.glassfish.jaxb:jaxb-core:jar:2.2.11 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.glassfish.jaxb:txw2:jar:2.2.11 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.glassfish.jaxb:jaxb-xjc:jar:2.2.11 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
...

Schaut man sich das genauer an landet man hier:
Code

...
[WARNING] The POM for org.glassfish.jaxb:jaxb-runtime:jar:2.2.11 is invalid, transitive dependencies (if any) will not be available: 1 problem was encountered while building the effective model for org.glassfish.jaxb:jaxb-runtime:2.2.11
[ERROR] 'dependencyManagement.dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${tools.jar} @
...

Eine tools.jar gibt es bei Java 11 nicht mehr.

Kennt jemand das Problem und kann mir weiter helfen? Warum will hbci4java eigentlich die Version 2.2.11 wenn als maven dependency Version 2.3.1 angegeben ist?

Viele Grüße

hibiscus

Betreff:

Re: java.lang.ClassNotFoundException: javax.xml.bind.JAXBElement bei hbci4java mit Java 11

 ·  Gepostet: 02.12.2019 - 15:05 Uhr  ·  #152530
In älteren Java-Versionen (bis 8) war JAXB direkt in Java enthalten. In neueren musste es mittels VM-Parameter explizit aktiviert werden. Seit IMHO Java 11 ist es gar nicht mehr enthalten und muss daher als externe Abhängigkeit geladen werden. Konkret sind das

javax.xml.bind:jaxb-api:2.3.1
org.glassfish.jaxb:jaxb-runtime:2.3.1

Beide Abhängigkeiten sind online verfügbar:

https://mvnrepository.com/arti…-api/2.3.1
https://mvnrepository.com/arti…time/2.3.1

Warum das bei dir nicht funktioniert, weiss ich nicht.

Ich compiliere HBCi4Java mit Java 8. Da funktioniert das problemlos.

fabfour

Betreff:

Re: java.lang.ClassNotFoundException: javax.xml.bind.JAXBElement bei hbci4java mit Java 11

 ·  Gepostet: 03.12.2019 - 11:16 Uhr  ·  #152544
Ich habe jetzt leider auch keine Lösung gefunden auf die schnelle...
Ich hab wieder Java8 installiert und verwende das.

Viele Grüße