Openoffice Headless Service


Möchte man Openoffice auf einem Server zum konvertieren nutzen, ist es natürlich unsinnig Openoffice in der Desktopvariante (wie es die meisten Paketmanager anbieten) zu installieren.

Aus diesem Grund wählt man die Headless Variante, d.h. Openoffice lauscht auf einem Port und benötigt keinerlei Desktopkomponenten.

Seit der Version 2.4 (eigentlich seit 2.3 –> siehe OpenOffice Changelog) kann man Openoffice nun headless installieren, zuvor war dies nur über den Umweg mittels Xvfb realisierbar.

Also besorgen wir uns zuerst einmal die aktuelle Openoffice Version von der zugehörigen Homepage.

In meinem Fall ist es die 2.4.1, zugleich auch die letzte Stable Version der 2er Reihe

Für die Headlessvariante muss nicht alles installiert werden wie ich oben schon erwähnte, es genügt im DEB Verzeichnis ein

sudo dpkg -i openoffice.org-base_2.4.1-17_i386.deb openoffice.org-headless_2.4.1-17_i386.deb openoffice.org-core*.deb

um die nötigen Komponenten zur Verfügung zu haben.

Für die Konvertierung der gewünschten Formate müssen dann die jeweiligen Pakete noch installiert werden.

sudo dpkg -i openoffice.org-math_2.4.1-17_i386.deb openoffice.org-calc_2.4.1-17_i386.deb openoffice.org-writer_2.4.1-17_i386.deb openoffice.org-impress_2.4.1-17_i386.deb

Das genügt für *.xls, *.doc und *.ppt Unterstützung.

Man findet die Dateien nun unter

/opt/openoffice.org2.4

Hier sollte nun zuerst in der program/sofficerc die Option Logo=1 zu Logo=0 geändert werden, schließlich sehen wir das Logo eh nicht und es würde auch einen funktionablen X-Server benötigen.

Im nächsten Schritt werden die wirklich wichtigen Dinge für den Betrieb der Headless Variante festgelegt.

Hierzu muss die share/registry/data/org/openoffice/Setup.xcu, welche eine zentrale Rolle spielt, angepasst werden.

Ich poste den komplett modifizierten Abschnitt, ich denke die Stelle wird jeder selbst finden.

Office benötigt eine Java-Runtime für den korrekten Betrieb. Diese kann unter Debian (bei eingepflegtem non-free Repository-Pfad) via

aptitude install sun-java5-jre

installiert werden

Somit sind alle Vorkehrungen getroffen um Openoffice in den Headlessbetrieb zu nehmen.

Als Addon finde ich es immer ganz schön via einer init-Datei den Service zu verwalten.
Hier meine spartanische Variante der init-Datei. Diese Datei muss im Verzeichnis /etc/init.d residieren und ausführbar (sudo chmod 755 dateiname) sein.
Unter Debian kann man den Service dann mittels update-rc.d (RTFM) als Autostart definieren.

,

  1. #1 von seb am 24. September 2008 - 16:10

    At the end you should have these packages on your server:
    ii openoffice.org-base 2.4.1-17 Base module for OpenOffice.org 2.4
    ii openoffice.org-calc 2.4.1-17 Calc module for OpenOffice.org 2.4
    ii openoffice.org-core01 2.4.1-17 Core module for OpenOffice.org 2.4
    ii openoffice.org-core02 2.4.1-17 Office core module for OpenOffice.org 2.4
    ii openoffice.org-core03 2.4.1-17 Office core module for OpenOffice.org 2.4
    ii openoffice.org-core03u 2.4.1-17 Office core module for OpenOffice.org 2.4
    ii openoffice.org-core04 2.4.1-17 Office core module for OpenOffice.org 2.4
    ii openoffice.org-core04u 2.4.1-17 Office core module for OpenOffice.org 2.4
    ii openoffice.org-core05 2.4.1-17 Office core module for OpenOffice.org 2.4
    ii openoffice.org-core05u 2.4.1-17 Office core module for OpenOffice.org 2.4
    ii openoffice.org-core06 2.4.1-17 Office core module for OpenOffice.org 2.4
    ii openoffice.org-core07 2.4.1-17 Office core module for OpenOffice.org 2.4
    ii openoffice.org-core08 2.4.1-17 Office core module for OpenOffice.org 2.4
    ii openoffice.org-core09 2.4.1-17 Office core module for OpenOffice.org 2.4
    ii openoffice.org-core10 2.4.1-17 Office core module for OpenOffice.org 2.4
    ii openoffice.org-headless 2.4.1-17 Headless display module for OpenOffice.org 2
    ii openoffice.org-impress 2.4.1-17 Impress module for OpenOffice.org 2.4
    ii openoffice.org-math 2.4.1-17 Math module for OpenOffice.org 2.4
    ii openoffice.org-writer 2.4.1-17 Writer module for OpenOffice.org 2.4

    with that you get rid of the annoying messages like:
    Exception in thread “main” com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException: conversion failed
    at com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.convertInternal(OpenOfficeDocumentConverter.java:119)
    at com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.convert(AbstractOpenOfficeDocumentConverter.java:104)
    at com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.convert(AbstractOpenOfficeDocumentConverter.java:74)
    at com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.convert(AbstractOpenOfficeDocumentConverter.java:70)
    at com.artofsolving.jodconverter.cli.ConvertDocument.convertOne(ConvertDocument.java:134)
    at com.artofsolving.jodconverter.cli.ConvertDocument.main(ConvertDocument.java:113)
    Caused by: com.sun.star.lang.IllegalArgumentException: URL seems to be an unsupported one.
    at com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:187)
    at com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:153)
    at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:349)
    at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:318)
    at com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:106)
    at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:657)
    at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:159)
    at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:141)
    at $Proxy5.loadComponentFromURL(Unknown Source)
    at com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.loadAndExport(OpenOfficeDocumentConverter.java:126)
    at com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.convertInternal(OpenOfficeDocumentConverter.java:113)
    … 5 more

(wird nicht veröffentlicht)