Ich traue mich fast nicht, aber jetzt habe ich wirklich einen Fehler. In der Logdatei selbst steht dazu nichts, aber das Fehlerfenster sagt:
Unable to retrieve the bundle from the URI: bundleclass://org.eclipse.e4.ui.workbench.addons.swt/org.eclipse.e4.ui.workbench.addons.minmax.TrimStack Error moving the PDF document in: com.sebulli.fakturama.office.OfficeDocument#createPdf (443)
Bei den letzten Betaversionen konnten die Fehler meist gelöst werden, wenn irgendein Cache gelöscht wurde. Habe schon mal die bewussten Dinge gelöscht, aber hat an den Fehlern erst einmal nichts geändert.
Logdatei:
!ENTRY com.sebulli.fakturama.common 4 0 2025-08-27 00:49:24.941
!MESSAGE Error moving the PDF document
!STACK 0
java.io.IOException: Cannot run program "/usr/bin/program/soffice": error=2, Datei oder Verzeichnis nicht gefunden
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
at com.sebulli.fakturama.office.OfficeDocument.createPdf(OfficeDocument.java:443)
at com.sebulli.fakturama.office.OfficeDocument.saveOODocument(OfficeDocument.java:272)
at com.sebulli.fakturama.office.OfficeDocument.createDocument(OfficeDocument.java:176)
at com.sebulli.fakturama.handlers.CreateOODocumentHandler.openOODocument(CreateOODocumentHandler.java:405)
at com.sebulli.fakturama.handlers.CreateOODocumentHandler.lambda$0(CreateOODocumentHandler.java:183)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5855)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1529)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5065)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4517)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:168)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
Caused by: java.io.IOException: error=2, Datei oder Verzeichnis nicht gefunden
at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:314)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:244)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110)
... 29 more
Wenn ich es richtig sehe, wird an meinen Pfad zum Office /usr/bin/ noch der Ordner program angehängt, bevor dann soffice aufgerufen wird, das ist natürlich falsch. Aber ich teste mal, was passiert, wenn ich den Ordner erstelle.
Edit: Genau das mit dem Ordner "program" ist das Problem. Habe den mal angelegt und soffice hineinkopiert, dann funktioniert auch die Rechnungserstellung. Kann ich das irgendwo so einstellen, dass er ganz normal auf /usr/bin/soffice zugreift?
Kein Problem, dafür ist der Betatest ja da 🙂 Man kann in den Einstellungen angeben, wo LibreOffice liegt. Der Fehler hier scheint aber auch an einem fehlenden Plugin zu liegen. Leider konnte ich bislang noch nicht den Linux-Teil so richtig testen, es kann also durchaus sein, daß da nochwas nicht ganz rund läuft.
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
Genau, in den Einstellungen habe ich den Pfad, wie oben beschrieben, hinterlegt. Dort wird dann noch /program/soffice angehangen, es dürfte aber nur /soffice angehangen werden 😉 - ich habe mal einen Screenshot angehangen. Die oben genannten Fehler treten dann nicht mehr auf, sobald er LibreOffice findet.
Achso, wenn ich eine Rechnung mit Giro-QR-Code erstellen möchte, kommt folgende Fehlermeldung:
Error starting OpenOffice with Rechnung_Leistungszeitraum_qr.ott in: com.sebulli.fakturama.office.TemplateProcessor#getDocumentInfoByPlaceholder (830)
Document couldn't be created. Reason: Error starting OpenOffice with Rechnung_Leistungszeitraum_qr.ott in: com.sebulli.fakturama.office.OfficeDocum...
Exception occured: in: com.sebulli.fakturama.office.TemplateProcessor#getDocumentInfoByPlaceholder (830)
Hat sich der Platzhalter für den QR-Code verändert?
Nein er kann office nicht starten, ist der gleiche fehler wie oben...
Nein er kann office nicht starten, ist der gleiche fehler wie oben...
Das tritt aber nur bei der Rechnungsvorlage mit dem Giro-QR-Code auf. Alle anderen Vorlagen funktionieren, also mit dem Trick, dass ich den Pfad erst einmal so erstellt habe, wie ihn Fakturama gerne hätte. In der zweiten Fehlermeldung werden halt explizit Platzhalter genannt und der einzige Platzhalte, der da anders ist, ist halt der für den Giro-QR-Code 😉
Hm. Eigentlich hat sich an den Platzhaltern nichts geändert, unter Windows hat das auch ganz stabil funktioniert. Ich muß mir erst mal eine Linux-Umgebung zusammenschrauben, dann bin ich aussagefähiger...
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
Unter Windows kommt immer, wenn ein Zugriff auf die Datenbank erfolgt: "fakturamaviews.properties could not be created. in: com.sebulli.fakturama.views.datatable.AbstractViewDataTable#onStart (274)"
Ich konnte Kunden und Artikel anlegen, auch eine Rechnung erstellen, diese aber nicht drucken.
Build-ID: 20250825-2244
Linux Mint 22.2 Cinnamon
Libre Office Version: 24.2.7.2 (X86_64)
Ich hatte jetzt mal versucht, eine komplett neue Rechnung zu erstellen. Das Open-Office-Dokument wird ausgegeben, die Erstellung der PDF-Datei selbst klappte aber nicht. Es wurde zwar die Datei erstellt, aber keine Inhalte übergeben. Das hängt wahrscheinlich auch mit dem kaputten Pfad zu tun, Fehlermeldung aus den Logs.
!SESSION 2025-08-30 13:20:29.721 -----------------------------------------------
eclipse.buildId=2.2.0.202508252244
java.version=17.0.14
java.vendor=Eclipse Adoptium
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=de_DE
Command-line arguments: -os linux -ws gtk -arch x86_64!ENTRY org.apache.aries.spifly.dynamic.bundle 4 0 2025-08-30 13:20:30.949
!MESSAGE FrameworkEvent ERROR
!STACK 0
java.lang.NoClassDefFoundError: jakarta/servlet/ServletContainerInitializer
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:283)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:716)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:639)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:607)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:587)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:566)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:500)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:622)
at org.apache.aries.spifly.ProviderBundleTrackerCustomizer.addingBundle(ProviderBundleTrackerCustomizer.java:143)
at org.apache.aries.spifly.ProviderBundleTrackerCustomizer.addingBundle(ProviderBundleTrackerCustomizer.java:64)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:475)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:1)
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:949)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:229)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:138)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:130)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:217)
at org.eclipse.osgi.container.Module.publishEvent(Module.java:499)
at org.eclipse.osgi.container.Module.doStart(Module.java:602)
at org.eclipse.osgi.container.Module.start(Module.java:468)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1852)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1845)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1788)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1750)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1672)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345)
Caused by: java.lang.ClassNotFoundException: jakarta.servlet.ServletContainerInitializer cannot be found by ch.qos.logback.classic_1.5.18
at org.eclipse.osgi.internal.loader.BundleLoader.generateException(BundleLoader.java:541)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:536)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
... 41 more!ENTRY org.apache.aries.spifly.dynamic.bundle 4 0 2025-08-30 13:20:30.951
!MESSAGE FrameworkEvent ERROR
!STACK 0
java.lang.NoClassDefFoundError: jakarta/servlet/ServletContainerInitializer
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:283)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:716)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:639)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:607)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:587)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:566)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:500)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:622)
at org.apache.aries.spifly.ProviderBundleTrackerCustomizer.addingBundle(ProviderBundleTrackerCustomizer.java:143)
at org.apache.aries.spifly.ProviderBundleTrackerCustomizer.addingBundle(ProviderBundleTrackerCustomizer.java:64)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:475)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:1)
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:949)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:229)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:138)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:130)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:217)
at org.eclipse.osgi.container.Module.publishEvent(Module.java:499)
at org.eclipse.osgi.container.Module.start(Module.java:486)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1852)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1845)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1788)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1750)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1672)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345)
Caused by: java.lang.ClassNotFoundException: jakarta.servlet.ServletContainerInitializer cannot be found by ch.qos.logback.classic_1.5.18
at org.eclipse.osgi.internal.loader.BundleLoader.generateException(BundleLoader.java:541)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:536)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
... 40 more
Huhu, ich schau mir die Fehler mal in Ruhe an. Das die Views Datei nicht erstellt werden kann, ist nicht weiter schlimm. Die PDF sollte sich aber öffnen. Wir sehen nach, was da los ist.
So, nachdem ich jetzt noch einmal ein wenig mehr Zeit hatte zum testen, glaube ich, dass ich einige der Fehler selbst verursacht habe und es gar nicht am Programm selbst liegt. Ich hatte zum Beispiel den falschen Pfad zu LibreOffice angegeben, sodass das Erstellen von PDFs gar kein Problem ist. Nur das mit dem Giro-QR-Code bleibt eigentlich bestehen. Rechnungen mit QR-Code-Platzhalter kann ich nicht erstellen.
Hallo, gibt es schon neue Erkenntnisse zum Fehler beim Drucken? Ich habe derzeit die Build-ID: 20250825-2244 unter Linux Mint im produktiven Einsatz. Wenn beim Kunden keine Email hinterlegt ist, öffnet sich die PDF und je nach Einstellung auch die ODT Datei. Sobald eine Email-Adresse hinterlegt ist, kommt eine Fehlermeldung. Ich habe dann mal den Mail-Service deaktiviert und nun geht Alles wieder, auch die XML wird jetzt erzeugt. Meine Vermutung: Der Email-Service startet schon, obwohl LibreOffice die PDF noch nicht gespeichert hat und findet demzufolge die Datei (noch) nicht.
Build-ID: 20250825-2244
Linux Mint 22.2 Cinnamon
Libre Office Version: 24.2.7.2 (X86_64)
Huhu, ich hab heut abend sicher Zeit, den letzten Rest zu machen, dann gibts ein neues Release. Sind nur noch kleinigkeiten zu tun. Wegen dem Fehler, ich schau mal, was es sein kann. Wenn ich nichts finde, schreib ich dir ne PN, dann können wir uns mal austauschen. Bitte prüfe auch, das der Pfad zu office stimmt (was ja sein sollte, die PDF wird ja erstellt).
Viele Grüße
Boarschti
@boarschti So machen wir das... Der Pfad stimmt, ohne Mail-Service läuft ja alles durch. Falls du am Mail-Service was änderst, könnte man dann nicht auch eine Signatur mit übergeben?
Gruß
Micha
Build-ID: 20250825-2244
Linux Mint 22.2 Cinnamon
Libre Office Version: 24.2.7.2 (X86_64)
Hi, der Mailservice steht auch auf der Anpassungsliste. Hat aber aktuell wenig prio. Laut handbuch könnt ihr Vorlagen anlegen, da kann ja eine Signatur drin sein? Probier das doch mal.
Grüße Boarschti