Goobi workflow
DokumentationenGoobi workflow PluginsGoobi workflow Digests
Deutsch
Deutsch
  • Übersicht
    • Goobi workflow Handbuch
    • Dokumentationsübersicht
    • Was ist Goobi?
  • Anwender
    • Goobi für Anwender
    • Allgemeines
      • Einloggen
      • Menü
      • Ausloggen
      • Sprachumschaltung
      • Hilfefunktion
      • Eigene Einstellungen
      • Passwort ändern
      • Meine Aufgaben
      • Vorgänge
      • Nach einem Vorgang suchen
      • Anlegen von Vorgängen
      • Aufgabendetails bearbeiten
    • Arbeiten mit Goobi für spezielle Benutzergruppen
      • Scannen
      • Qualitätskontrolle
      • Manuelle Skriptschritte und Pluginschritte
      • Automatische Skriptschritte
      • Metadatenbearbeitung
      • Export in das DMS
    • Metadateneditor
      • Oberfläche
        • Strukturbaum
        • Seitenanzeige
        • Menüoptionen
      • Metadaten bearbeiten
        • Paginierung
        • Strukturierung
          • Neue Strukturelemente hinzufügen
          • Strukturelemente verschieben
          • Kopieren von Strukturelementen aus anderen Vorgängen
      • Änderung und Prüfung von Daten
        • Paginierung nachträglich ändern
        • Datei hochladen
        • Datei herunterladen
        • Serverseitiges exportierten
        • Serverseitiges importieren
      • OCR Ergebnisse bearbeiten
      • Übersicht über die Tastenkombinationen
  • Verwaltung
    • Die Verwaltung von Goobi
    • Aufbau der erweiterten Nutzeroberfläche
    • Regelsätze
    • LDAP-Gruppen
    • Benutzer
    • Benutzergruppen
    • Vorgänge
      • Vorgänge suchen
      • Aktionen
      • Aktionen für Trefferlisten
      • GoobiScript
    • Variablensystem
    • Harvester
  • Administration
    • Die Administration von Goobi
    • Dateisystem
      • Globale Verzeichnisstruktur
        • Unterverzeichnis ‚config’
        • Unterverzeichnis ‚import’
        • Unterverzeichnis ‚metadata’
        • Unterverzeichnis ‚plugins’
        • Unterverzeichnis ‚rulesets’
        • Unterverzeichnis ‚scripts’
        • Unterverzeichnis ‚xslt’
      • Verzeichnisstruktur der Applikation
      • Einbindung von externem Storage
      • Einbindung von S3 als Storage
    • Dienste
      • Datenbank MySQL
      • Servlet Container Apache Tomcat
      • Authentifizierung der Nutzer mittels LDAP
      • Dateisystemzugriff mittels Samba
    • Export in digitale Bibliotheken
      • Technische Daten
      • Mets Parameter
      • Mets Dateigruppen
      • Konfiguration des Exports in der Goobi Konfigurationsdatei
    • Zusammenarbeit mit dem intranda Task Manager
    • Automatische Workflowschritte
      • Beispielkombination für einen automatischen Skript Schritt
      • Migration technischer Metadaten in METS-Dateien
      • Automatisches Löschen von Images
    • Konfigurationsdateien
      • goobi_activemq.xml
      • goobi_config.properties
      • goobi_digitalCollections.xml
      • goobi_exportXml.xml
      • goobi_mail.xml
      • goobi_metadataDisplayRules.xml
      • goobi_normdata.xml
      • goobi_opac.xml
      • goobi_opacUmlaut.txt
      • goobi_processProperties.xml
      • goobi_projects.xml
      • goobi_rest.xml
      • goobi_webapi.xml
      • messages_xx.properties
      • config_contentServer.xml
    • Installationsanleitung
      • Installationsanleitung - Ubuntu 20.04
    • Updateanleitung
      • Vorbereitung eines Updates
      • Updateschritte
        • 2020
        • 2021
        • 2022
        • 2023
        • 2024
        • 2025
    • Möglichkeiten der Authentifizierung
      • Authentifizierung über die Datenbank
      • Authentifizierung über HTTP-Header
      • Authentifizierung über OpenID Connect
    • Anwendungsszenarien
      • Thumbnails erzeugen für beschleunigte Bildanzeige
      • Umgang mit 3D Objekten
      • Export von 3D-Objekten in den Goobi viewer
  • Entwickler
    • Aufsetzen einer Entwicklungsumgebung
      • Vorbereitende Arbeiten
      • Einrichtung von Eclipse
      • Zurücksetzen der Daten
      • Best Practice für die Entwicklung von Goobi und für die Arbeit mit Eclipse
    • Nutzung der REST-API
    • Snippets für die Entwicklung an Goobi workflow
      • HTML
      • JavaScript
Bereitgestellt von GitBook
Auf dieser Seite
  • 1.4.1 Sinnvolle Softwarepakete
  • Linux
  • Mac
  • 1.4.2 Timeout für Tomcat vermeiden
  • 1.4.3 Tomcat von Persistenz bzw. Serialisierung abhalten
  • 1.4.4 HotSwap Agent (JRebel Ersatz)
  • Allgemeines
  • Installation
  • Konfiguration
  • Besonderheit bei Plugins
Als PDF exportieren
  1. Entwickler
  2. Aufsetzen einer Entwicklungsumgebung

Best Practice für die Entwicklung von Goobi und für die Arbeit mit Eclipse

VorherigeZurücksetzen der DatenNächsteNutzung der REST-API

Zuletzt aktualisiert vor 6 Monaten

1.4.1 Sinnvolle Softwarepakete

Um mit den Repositories und dem Quellcode sinnvoll arbeiten zu können, sollten weitere Pakete installiert werden. Diese haben sich als sinnvoll erwiesen:

Linux

sudo apt install git
sudo apt install maven

Mac

brew install git
brew install maven

1.4.2 Timeout für Tomcat vermeiden

Unter Umständen dauert der Start des Tomcat länger als der per default gesetzte Timeout. Daher kann es sinnvoll sein, diesen anzupassen. Dies kann innerhalb des Servers View erfolgen. Dazu müssen die Einstellungen per Doppelklick auf den erzeugen Server goobi geöffnet werden, so dass dann im obereren rechten Bereich der Konfiguration im Bereich Timeouts ein anderer Wert für den Start des Tomcat Servers angegeben werden kann.

1.4.3 Tomcat von Persistenz bzw. Serialisierung abhalten

Um die Fehlermeldungen von Tomcat zu Unterbinden, wenn die Serialisierung der Sessions nicht funktioniert, kann man folgendermaßen vorgehen:

  • in Eclipse das Projekt Servers öffnen

  • darin für den richtigen Tomcat die Datei context.xml öffnen

  • innerhalb der Datei den folgenden Block so ändern und speichern:

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<Manager pathname="" />

1.4.4 HotSwap Agent (JRebel Ersatz)

​Der HotSwap Agent ermöglicht es, dass Dateien bearbeitet und im laufenden Betrieb automatisiert aktualisiert werden können. Dies funktioniert insbesondere für java- und xhtml-Code in Goobi Workflow und zugehörigen Plugins.

Mit einem erfolgreich eingerichteten HotSwap Agent müssen Dateien später nur noch in ihrem lokalen Repository geändert und gespeichert werden und die Änderungen sind direkt beim Neuladen einer Seite im Webbrowser präsent.

Allgemeines

  • Tomcat MUSS im DEBUG Modus gestartet werden, sonst funktioniert das class-reloading nicht. In Eclipse ist dies das Icon mit dem Käfer statt dem normalen Run-Button.

  • Falls Tomcat nur zum Teil hochfährt und dann stehen bleibt, kann es sein, dass irgendwo Breakpoints gesetzt sind. Diese können in Eclipse mit Run -> Skip All Breakpoints übersprungen oder mit Run -> Remove All Breakpoints entfernt werden.

Installation

  • Heruntergeladenes HotSwap-JDK entpacken und in Eclipse in den Preferences als JRE bekannt machen

  • Details des WTP-Tomcat konfigurieren, durch Doppelklick auf den Server im Server-View

    • Klick auf Runtime Environment, um dort das bekannt gemachte HotSwap JDK als JRE auszuwählen

    • Klick auf Open launch configuration, um dort dieses VM-Argument hinzufügen: -XX:HotswapAgent=fatjar

    • Unter Publishing die Option Never publish automatically auswählen

    • Auf dem Reiter Modules den Parameter auto-reload auf false setzen (bzw. in der server.xml im richtigen Bereich so setzen: reloadable="false") Hinweis: der Reiter befindet sich am unteren Rand des Server-Bearbeitungs-Views.

Konfiguration

  • Vor der Inbetriebnahme muss noch eine Konfigurationsdatei mit dem Namen hotswap-agent.properties innerhalb des Goobi Source Ordners liegen:

nano ~/git/goobi-workflow/Goobi/src/hotswap-agent.properties
  • Darin muss sich ein Inhalt wie der folgende befinden (Wichtig: komplette Pfade, keine Tilde für Home-Verzeichnis):

extraClasspath=/home/PETER/git/goobi-workflow/Goobi/webapp/WEB-INF/classes/; \
/home/PETER/git/goobi-plugin-administration-snippet-creator/plugin/target/classes; \
/home/PETER/git/goobi-plugin-opac-json/goobi-plugin-opac-json/target/classes; \
/home/PETER/git/goobi-plugin-workflow-aeon-process-creation/plugin/target/classes;

webappDir=/home/PETER/git/goobi-workflow/Goobi/webapp; \
/home/PETER/git/goobi-plugin-administration-snippet-creator/plugin/src/main/resources/GUI/META-INF/resources; \
/home/PETER/git/goobi-plugin-opac-json/goobi-plugin-opac-json/src/main/resources/GUI/META-INF/resources; \
/home/PETER/git/goobi-plugin-workflow-aeon-process-creation/plugin/src/main/resources/GUI/META-INF/resources;

Besonderheit bei Plugins

  • Wenn Plugins mit berücksichtigt werden sollen, müssen diese innerhalb der Konfigurationsdatei explizit benannt sein (so wie hier in der Beispielkonfiguration sichtbar)

  • Plugins müssen vor dem Goobi-Start in kompilierter Form in die typischen Plugin-Ordner kopiert werden (also z.B. nach /opt/digiverso/goobi/plugins/workflow/ und /opt/digiverso/goobi/plugins/GUI/)

  • gelesen und ausgeführt werden die Plugins dann aus dem Eclipse-Repository

  • Es müssen keine xhtml-Dateien der Plugins mehr im Goobi-uii-Ordner liegen

Die offizielle Webseite des HotSwap Agenten ist hier:

Herunterladen der passenden HotSwap-JVM (Java 11) von hier:

​ Detailierte Informationen zur Konfiguration befinden sich hier:

http://hotswapagent.org/
https://github.com/TravaOpenJDK/trava-jdk-11-dcevm/releases
http://hotswapagent.org/mydoc_configuration.html
Timeout