Seite 1 von 1

[Ubuntu] Provider for class javax.xml.DocumentBuilderFactory cannot be created

Verfasst: Fr Mär 05, 2021 3:45 pm
von schyrsivochter
Moin,

ich bin vor Kurzem auf diese Website gestoßen und war sofort Feuer und Flamme. Nun wollte ich heute STS installieren und ausprobieren, aber komme leider noch nicht über den Funktionstest hinaus. :<

Mein System ist Ubuntu 20.10. Ich nutze OpenJDK 8 (openjdk-8-jre) sowie IcedTea (icedtea-netx). Ich habe schon mit IcedTeas grafischem Tool in ~/.config/icedtea-web/security/java.policy alle Berechtigungen vergeben – das hat dazu geführt, dass der Zeitsystem-Verbindungstest von rot auf gelb gewechselt ist. Die Punkte „Ton“ und „Berechtigung“ sind ebenfalls gelb, der Rest grün – außer „Authentisierung“, dort gibt es keinen Punkt. Dafür erhalte ich einen Dialog mit einer Fehlermeldung, die ausführlicher auch noch mal in der Konsole steht:

Code: Alles auswählen

javax.xml.parsers.FactoryConfigurationError: Provider for class javax.xml.parsers.DocumentBuilderFactory cannot be created
	at javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:311)
	at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:267)
	at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:120)
	at java.util.prefs.XmlSupport.createPrefsDoc(XmlSupport.java:225)
	at java.util.prefs.XmlSupport.exportMap(XmlSupport.java:343)
	at java.util.prefs.FileSystemPreferences$7.run(FileSystemPreferences.java:634)
	at java.util.prefs.FileSystemPreferences$7.run(FileSystemPreferences.java:627)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.util.prefs.FileSystemPreferences.writeBackCache(FileSystemPreferences.java:626)
	at java.util.prefs.FileSystemPreferences.syncSpiPrivileged(FileSystemPreferences.java:813)
	at java.util.prefs.FileSystemPreferences.access$2300(FileSystemPreferences.java:50)
	at java.util.prefs.FileSystemPreferences$12.run(FileSystemPreferences.java:783)
	at java.util.prefs.FileSystemPreferences$12.run(FileSystemPreferences.java:781)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.util.prefs.FileSystemPreferences.syncSpi(FileSystemPreferences.java:780)
	at java.util.prefs.AbstractPreferences.sync2(AbstractPreferences.java:1338)
	at java.util.prefs.AbstractPreferences.sync(AbstractPreferences.java:1329)
	at java.util.prefs.FileSystemPreferences.sync(FileSystemPreferences.java:759)
	at js.java.schaltungen.verifyTests.v_token.test(v_token.java:61)
	at js.java.schaltungen.verifyTests.InitTestBase.runtest(InitTestBase.java:34)
	at js.java.schaltungen.StartVerify.runTests(StartVerify.java:115)
	at js.java.schaltungen.StartVerify.access$000(StartVerify.java:25)
	at js.java.schaltungen.StartVerify$1.run(StartVerify.java:100)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: Provider for class javax.xml.parsers.DocumentBuilderFactory cannot be created
	at javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:308)
	... 23 more
Caused by: java.util.ServiceConfigurationError: javax.xml.parsers.DocumentBuilderFactory: Provider org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found
	at java.util.ServiceLoader.fail(ServiceLoader.java:239)
	at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
	at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:372)
	at java.util.ServiceLoader$LazyIterator.access$700(ServiceLoader.java:323)
	at java.util.ServiceLoader$LazyIterator$2.run(ServiceLoader.java:407)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:409)
	at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
	at javax.xml.parsers.FactoryFinder$1.run(FactoryFinder.java:294)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.xml.parsers.FactoryFinder.findServiceProvider(FactoryFinder.java:289)
	... 23 more
Wenn ich sie wegklicke, kommt sie nach kurzer Zeit wieder; wenn ich sie dann noch mal wegklicke, passiert gar nichts mehr und ich muss das Programm zwangsbeenden, da der Schließen-Knopf nicht funktioniert.

Kann mir da jemand helfen? Fehlt mir vielleicht irgendein Paket?

Zur Information:

Code: Alles auswählen

PS /home/andreas> apt list openjdk-8-jre
Listing... Done
openjdk-8-jre/groovy-security,groovy-updates,now 8u282-b08-0ubuntu1~20.10 amd64 [installed,automatic]
PS /home/andreas> apt list icedtea-netx
Listing... Done
icedtea-netx/groovy,now 1.8-0ubuntu8 amd64 [installed]
PS /home/andreas> uname -srm
Linux 5.8.0-44-generic x86_64
Gruß,
Andreas

Re: [Ubuntu] Provider for class javax.xml.DocumentBuilderFactory cannot be created

Verfasst: Sa Mär 06, 2021 12:10 am
von petero
Hallo Andreas,

machst du mal bitte im Terminal ein "java --version".
Ich habe mir gerade in einer VM ein frisches Ubuntu 20.10 installiert, direkt im anschluss das Java OpenJDK8. Bei der Intallation von icedtea-netx wird mir dann erst einmal noch das openjdk11 installiert und als default gesetzt.

Über "sudo update-alternatives --config java " kannst du das Default Java ändern.
Grundsätzlich aber der Hinweis, der STS wird nur unter Oracle Java getestet und Entwickelt: viewtopic.php?f=21&t=31258

Daher mein Tipp installiere dir gemäßt dieser Anleitung das Orcale Java und es sollte ohne Probleme funktionieren. (War zumindest in meinem Test so)
In dem Fall startest du dann die .jnlp Datei über das javaws aus dem Ordner /usr/java/jre.1.8.0_281/bin
Das sieht dann bei einem Start (wenn du dich mit dem Terminal in dem Ordner befindest) bei mir so aus:

Code: Alles auswählen

./javaws /home/peter/Downloads/sts-peter.jnlp
Gruß
Peter