GeoNetwork
Geonetwork

Aktuell wird von uns GeoNetwork 3.x empfohlen. Alle nachfolgenden Anleitungen beziehen sich, so nicht anders angegeben, auf die alte Version 2.10.4.

Installation des GeoNetwork:

Wenn die Installation erfolgreich war, kann GeoNetwork unter folgenden Adressen aufgerufen werden:

Adresse für den GeoNetwork-WebClient:

http://<servername:port>/geonetwork

Basisadresse für CSW-Serviceanfragen:

http://<serveradresse:port>/geonetwork/srv/eng/csw

(GN 2.6.3: http://<serveradresse:port>/geonetwork/srv/en/csw)

Abruf eines Metadatensatzes über seinen Identifier

(geonetworkspezifische Schnittstelle)

http://<serveradresse:port>/geonetwork/srv/eng/xml_iso19139?uuid=<Identifier>

(GN 2.6.x: http://<serveradresse:port>/geonetwork/srv/en/iso19139.xml?uuid=<Identifier>)

Konfiguration des GeoNetwork:

Ist der GeoNetwork korrekt eingerichtet, können in diesen über cardo Metadaten exportiert werden.

Hinweis: Beachten Sie, dass die neue Version GeoNetwork 2.10.4 bei der Definition des CSW im cardo explizit bekannt gegeben werden muss (Servertyp = GeoNetwork_210x).
Systemvoraussetzungen zur Installation von GeoNetwork

Damit GeoNetwork betrieben werden kann, muss nachfolgende Software installiert werden. Dabei werden hier nur die konkreten Module aufgeführt, die wir intern verwenden und mit denen wir entsprechend Erfahrung gesammelt haben.

  • Java Java 8 JRE, 32/64 je nach Tomcat
  • Tomcat 8.5 - 32Bit oder 64Bit (Tomcat 7 oder 8 sind auch bei Kunden im Einsatz)
  • falls CSW über URL des IIS aufrufbar sein soll: IIS Erweiterungen ARR und URL Rewrite (ab IIS Version 7 verfügbar) - empfohlen
    (Falls nicht möglich sind hier Alternativen beschrieben)

Installation Java:

  • wird die Webseite aus einem 32Bit-Browser aufgerufen wird Java 32Bit installiert, eine 64Bit-Version ist über die Webseite 'anderer Versionen' zu finden

Installation Tomcat:

  • Installation per Installer
  • Bei uns mussten für den Tomcat noch ein paar Parameter angepasst werden, damit es nicht zu einem OutOfMemory-Fehler kam. Dazu mussten folgende Java-Optionen beim Start des Tomcat gesetzt werden:

    -XX:MaxPermSize=128m
    -XX:+CMSPermGenSweepingEnabled
    -XX:+CMSClassUnloadingEnabled

    "You can do that by shutting down the tomcat service, then going into the Tomcat/bin directory and running tomcat6w.exe. Under the "Java" tab, add the arguments to the "Java Options" box. Click "OK" and then restart the service."

  • Damit das Konfig-Tool von Tomcat im SystemTray von Windows auftaucht, muss in einem CommandoZeilenFenster folgender Befehl ausgeführt werden:
    tomcat8w //MS//
Hinweis: Es ist prinzipiell möglich verschiedene Versionen von Tomcat parallel zu installieren. Dazu müssen entsprechend bei der Installation alle Ports neu vergeben werden.

Installation ARR und URL Rewrite:

  • neuere Versionen des cardo-Installers installieren diese Erweiterungen bereits mit (im IIS Manager an der Webseite müssen das Icon 'URL Rewrite' verfügbar sein und am Server-Knoten 'Application Request Routing Cache')
  • Installieren falls nicht vorhanden: URL Rewrite, ARR
  • für ARR noch den Proxy aktivieren, sonst kann nicht auf eine externe Seite weitergeleitet werden: an Server-Knoten/ 'Application Request Routing Cache'/'Server Proxy Settings' nur die Checkbox 'Enable Proxy' aktivieren
    (siehe hier)
GeoNetwork installieren

Sind alle Systemvoraussetzungen erfüllt, kann GeoNetwork installiert werden:

  • Version 2.10.4 als war-File herunterladen (wenn als ZIP-File geliefert, in war umbenennen)
  • war-File in das Verzeichnis Programme/Tomcat[?]/webapps legen
  • autom. Installation beginnt sofort und es taucht das neue Verzeichnis geonetwork unter webapps auf
Achtung: Das war-File darf NICHT gelöscht oder umbenannt werden, sonst wird die Anwendung automatisch vom Tomcat wieder deinstalliert!
 
Tomcat 8.5: falls die automatische Installation nicht startet, kann der Inhalt des war-Files (ist ein ZIP-File) in einen anzulegenden Unterordner 'geonetwork' unter dem webapps-Verzeichnis entpackt werden.
Hinweis: Prüfen Sie, dass in Windows Dateiendungen angezeigt werden (und das war-File auch wirklich *.war heißt).
 
Hinweis: Soll eine parallele Instanz des GeoNetwork betrieben werden, kann ein entsprechend umbenanntes war-File in das webapps-Verzeichnis gelegt werden.

Achtung: Bei zwei parallelen geoNetworks startete die zweite Instanz nicht mit dem Fehler 'OverlappingFileLockException'. Grund ist, dass beide Instanzen auf das selbe Data-Verzeichnis zugreifen. Der zweiten Instanz muss explizit das eigene Datenverzeichnis zugewiesen werden z.B. über eine Java-Variable:

-D<instanzname>.dir=<Pfad>

Beispiel:

-Dgeonetwork_test.dir=C:\Program Files (x86)\Apache Software Foundation\tomcat 8.5\webapps\geonetwork_test\WEB-INF\data
 
Hinweis: Bei parallelen Installationen muss nach Installation über den WebClient der Port für Z39.50 angepasst werden, damit es keine doppelte Belegung gibt.
 
  • Standardpasswortaccount admin/admin - Passwort über das Webfrontend ändern

GeoNetwork bringt eine integrierte H2-Datenbank mit, welche wir in unseren Installationen auch verwenden (empfohlen). Alternativ kann eine Postgres DB verwendet werden.

Sonstiges

GeoNetwork konfigurieren

Als Administrator sollten Sie über die GeoNetwork-Weboberfläche folgende weitere Anpassungen machen:

  • Anlegen eines neuen Benutzers für den Import
    2.10.4: User muss Adminrecht haben, sonst Fehler bei Transaktion
    2.6.3: hier reicht Rolle 'Editor' für den Import, kein Adminrecht nötig
    (Administration/User Management)
  • In den Systemeinstellungen muss die Basisadresse des CSW, über die er von außen erreichbar ist, definiert werden, damit diese korrekt im GetCapabilities-Dokument ausgegeben wird.
    (Administration/System configuration/Server)
    Wenn https verwendet wird, muss hier entsprechend dieses als bevorzugtes Protokoll eingestellt werden (Damit für das  Capabilities-Dokument alle URL's mit https generiert werden.)
  • Benutzer für CSW-Server Kontakt konfigurieren (entweder bestehenden verwenden oder neuen anlegen)
    Die Benutzerdaten werden dann als Kontaktinformationen im GetCapabilities ausgegeben.
    Folgende Kontakdaten tauchen im GetCapabilities auf:
    Last Name, First Name, Address, City, Zip, Country, Email
    Zusätzlich werden folgende im Inspire-Abschnitt verwendet:
    Organisation/Department
    Zu verwendenden Kontakt auswählen unter:
    Administration/CSW-Server/Contact
  • Für GetCapabilities können Titel, Abstract, Fees und Constraints eingetragen werden.
    (Administration/CSW Server) 
    Als 'ProviderName' wird das Feld 'Organization' unter Administration/SystemConfiguration verwendet
  • importierte Datensätze müssen automatisch für alle sichtbar geschalten werden (Administration/CSW Server/'Inserted Metadata is Public' anhaken)
  • Die Erstellung INSPIRE-konformer Ausgaben muss aktiviert werden (Administration/System configuration/INSPIRE - Enable). Im dann generierten Inspire-Abschnitt im GetCapabilities-Dokument wird vom Kontakt-User (siehe oben) auch verwendet und muss entsprechend gesetzt sein: Organisationsname
  • Anpassung speziell für die Suche des GeoMIS Sachsen in den Kategorien der Datensätze
GeoNetwork mit Postgres

GeoNetwork bringt eine integrierte McKoi-Datenbank mit, welche wir in unseren Installationen auch verwenden. Alternativ kann ein Postgres verwendet werden (Anleitung Stand GeoNetwork 2.6.3).

Datenbank auf PostgreSQL ändern:

Wir empfehlen, PostgresSQL zu verwenden, da dies bei unseren Kunden meist schon im Einsatz ist und so eventuelle Anpassungen in der Datenbank über ein zentrales Management-Tool (pgAdmin) durchgeführt werden können.

Dazu muss eine leere PostgreSQL-Datenbank mit der PostGIS-Erweiterung anlegt werden, welche am besten auch als Owner einen neuen DB-Benutzer 'geonetwork' bekommt. Im geonetwork-Verzeichnis unter Tomcat in der Datei WEB-INF/config.xml muss der PostgreSQL-Abschnitt entsprechend angepasst und aktiviert und der McKoi-Abschnitt deaktiviert werden. Dann den Tomcat neu starten, dabei wird die leere Datenbank automatisch eingerichtet.

Die Spalte 'label' der Tabelle 'cswservercapabilitiesinfo' ist mit 96 Zeichen etwas knapp bemessen. Wir empfehlen, diese Spalte nachträglich (z. B. über den pgAdmin) auf 500 Zeichen zu setzen (der Abstract des GetCapabilities wird u.a. hier gespeichert und ist meist länger als 96 Zeichen).

Die Basisadresse für CSW-Serviceanfragen ist:

http://<serveradresse:port>/geonetwork/srv/en/csw

Die Adresse für den GeoNetwork-WebClient ist:

http://<servername:port>/geonetwork/

Hinweis: Wird als Datenbank PostGreSQL genutzt, ist es wichtig, dass der Dienst Tomcat erst nach dem Dienst PostgreSQL startet, da sonst Geonetwork nicht sauber initialisiert wird. Die Diensteabhängigkeit kann über die Registry definiert werden.
Alternativen ReverseProxy

Kann IIS URL-Rewrite (empfohlen) nicht verwendet werden, gibt es weitere Alternativen:

  • ISAPI_Rewrite (kostenpflichtige Version mit ReverseProxy wird benötigt) siehe unten
  • Tomcat-Connector (OpenSource) siehe unten

ISAPI_Rewrite

Folgende Konfiguration leitet alle nötigen Aufrufe um:

#die Adminoberfläche wird umgeleitet
RewriteProxy geonetwork_lkgr(.*) http\://localhost:8080/geonetwork$1 [I,U]

#/csw wird auf Geonetwork umgeleitet, weitere Unteraufrufe müssen auch umgeleitet werden
RewriteProxy csw(.*) http\://localhost:8080/geonetwork/srv/en/csw$1 [I,U]
RewriteProxy xml.user(.*) http\://localhost:8080/geonetwork/srv/en/csw/xml.user$1 [I,U]
RewriteProxy metadata.admin(.*) http\://localhost:8080/geonetwork/srv/en/csw/metadata.admin$1 [I,U]

Tomcat Connector

  • Tomcat Connector (wählen Sie je nach IIS-Modus eine x86- oder x64-Dll; Hinweis: sollte im gleichen IIS auch cardo laufen, läuft dieser immer im x86-Mode)

Zur Integration des Tomcat-Connectors in den IIS gibt es etliche Anleitungen im Internet, z. B. hier und hier.

Konfiguration 2.6.3 für Inspire
Wichtig: Nachfolgende Beschreibung ist nur für GeoNetwork 2.6.3 relevant, 2.10.4 ist bereits von Haus aus entsprechend vorbereitet.

 

Nicht alle Daten, welche im GetCapabilities-XML ausgegeben werden, können derzeit komfortabel in der Oberfläche geändert werden. Wenn Sie z. B. Telefon, Fax oder Öffnungszeiten mit ausgeben wollen, müssen Sie diese Werte direkt in der Datei Tomcat\webapps\geonetwork\xml\csw\capabilities_inspire.xml eintragen.

Neben den dort bereits vorgegebenen Tags, deren Daten nur angepasst werden müssen, gibt es weitere Tags, die komplett neu definiert werden müssen. Inspire verlangt ein Metadatendatum und einen Metadatenkontakt direkt für das Capabilities-Dokument des CSW. Diese können über folgende zusätzliche Tags definiert werden:

<ows:ExtendedCapabilities>
  <inspire_ds:ExtendedCapabilities>
    <inspire_ds:MetadataDate>2005-04-18</inspire_ds:MetadataDate>
  <inspire_ds:MetadataPointOfContact>
    <inspire_ds:OrganisationName>

      Orgname
    </inspire_ds:OrganisationName>
    <inspire_ds:EmailAddress>
      email
    </inspire_ds:EmailAddress>
  </inspire_ds:MetadataPointOfContact>
  <inspire_ds:Languages>
  ...

Ein weiteres Problem, welches bei der Validierung des GetCapabilities-Dokumentes auftritt muss noch korrigiert werden. Als Rolle für den ServiceProvider (ows:ServiceProvider/ows:ServiceContact/ows:Role) wird das Feld 'Kind' des eingestellten Geonetwork-Users verwendet, welches auf eine nicht INSPIRE-konforme Nachschlageliste zurückgreift. Deswegen muss im capabilities_inspire.xml folgende Zeichenfolge ersetzt werden:

...
    <ows:Role>pointOfContact</ows:Role>
  </ows:ServiceContact>
</ows:ServiceProvider>
...

Dabei wird die Variable $ROLE durch einen fixen konformen Wert ersetzt.

Häufige Fehler und Lösungen

Häufige Fehler und Lösungen

Fehlerausschrift bei der Recherche:

Fehler bei GetRecord (SOAP) - ... Request-URL: http://localhost:8080/...

Lösung: wenn GeoNetwork (üblicherweise) nicht direkt auf dem cardo-Server installiert ist, deutet der Fehler darauf hin, dass Sie vergessen haben, die Basisadresse im GeoNetwork einzustellen, so dass GeoNetwork im GetCapabilities-Dokument die lokale Adresse localhost angibt, welche von aussen nicht verwendbar ist. Sie müssen wie oben beschrieben die Basis-Url noch über die Adminoberfläche das GeoNetwork bekannt geben. 

Fehlerausschrift beim Export:

... An error occurred at line: [73] in the generated java file: [C:\Program Files\Apache Software Foundation\Tomcat 8.0\work\Catalina\localhost\geonetwork\org\apache\jsp\login_jsp.java]
The method getDispatcherType() is undefined for the type HttpServletRequest ...

Lösung: Der Benutzername ist casesensitiv und muss in der richtigen Groß-/Kleinschreibung angegeben werden.

Software aktualisieren

Aus Sicherheitsgründen sollten die Komponenten auf dem aktuellen Stand gehalten werden.

Java:

Prüfen Sie, dass der Tomcat so eingestellt ist, dass er automatisch die Standardversion des Java auf dem Rechner nutzt (Häkchen bei 'Use default'):

Für Java kann dann jederzeit das aktuelle Patch-Level über den entsprechenden Installer installiert werden. Soll eine neue Hauptversion eingesetzt werden, muss dem Tomcat entsprechend der Pfad zur neuen Version bekannt gegeben werden (oder obiges 'Use default' genutzt werden).

ACHTUNG: Geonetwork 2.6.3 benötigt ein Java 7, mit höheren Versionen funktioniert es nicht!

 

Tomcat:

  • Sichern Sie die Verzeichnisse config und webapps
  • Sichern Sie die Datenbankdateien direkt unter 'Apache Software Foundation'\Tomcat x.x\geonetwork.*
    (bei Geonetwork 2.6.3 liegen die DB-Dateien im webapps-Verzeichnis und müssen nicht extra gesichert werden)
  • Sichern Sie die JAVA-Variablen, so wie im Tomcat-Reiter 'Java' eingestellt
  • Notieren Sie die Ports und den Adminaccount für Tomcat
  • Beenden Sie den Tomcatdienst manuell und schließen Sie alle in Editoren geöffneten Tomcatfiles (z.B. Logs), damit die Deinstallation reibungslos klappt
  • Deinstallieren Sie den Tomcat
    Achtung: bei der entsprechenden Nachfrage werden tatsächlich alle Dateien gelöscht (auch conf und webapps), behalten Sie die Daten am besten vorerst und benennen Sie das Verzeichnis 'Apache Software Foundation'\Tomcat x.x vor dem nächsten Schritt um (kann dann nach erfolgreicher Migration gelöscht werden)!
  • Installieren Sie den neuen Tomcat
  • Starten Sie den Tomcat noch nicht oder beenden Sie den Tomcat wieder
  • Kopieren Sie alle Anwendungsverzeichnisse (z.B. geonetwork) und war-Dateien aus der Sicherung zurück in das neue webapps-Verzeichnis (aber nur die eigenen Anwendungen, nicht die Tomcat-Ordner!)
  • Kopieren Sie die Datenbanken dazu zurück (siehe oben Punkt Sicherung)
  • Starten Sie die Managementanwendung von Tomcat und setzen Sie den Haken bei Java 'Use default' wieder
  • Übernehmen Sie alle benutzerspezifischen JAVA-Parameter (z.B. wegen OutOfMemory siehe oben)
  • Starten Sie den Tomcat

Nun sollte alles wieder funktionieren.

Nach der selben Anleitung funktioniert auch das Auswechseln des Tomcat 7 durch einen Tomcat 8.5.