Ich habe eine Grails-Webanwendung für Tomcat geschrieben, die eine Berkeley DB auf ./data/transactions/foobar öffnet und liest.
Dieser Code läuft problemlos in meiner Eclipse-Umgebung.
Aber wenn ich es auf den Server verschiebe, wirft es diese Ausnahme aus. Ich bin mir nicht sicher, welches das aktuelle Arbeitsverzeichnis ist, wenn ich das Grails als WAR-Datei auf dem Server bereitstelle.
com.sleepycat.je.EnvironmentNotFoundException: (JE 4.1.10) ./data/transactions/Foobar
Home-Verzeichnis: ./data/transactions/Foobar ENV_NOT_FOUND:
EnvironmentConfig.setAllowCreate ist false, sodass die Erstellung der Umgebung nicht gestattet ist, aber es gibt keine Protokolldateien im Umgebungsverzeichnis. Umgebung ist ungültig und muss geschlossen werden.
Mein Tomcat-Installationsverzeichnis auf dem Linux-Server ist /usr/share/tomcat6. Das Root-Verzeichnis für die Webanwendungen ist /usr/share/tomcat6/webapps. Wir haben das WAR-Verzeichnis in einem Unterverzeichnis namens "bridge" installiert. Der WAR-Pfad meiner Grails-Anwendung befindet sich in /usr/share/tomcat6/webapps/bridge
Ich habe versucht, die ./data/transaction/Foobar sowohl in /usr/share/tomcat6/webapps als auch in /usr/share/tomcat6/webapps/bridge zu platzieren, aber ohne Erfolg.
Ich habe auch versucht, ./data/transaction/Foobar in das Installationsbasisverzeichnis /usr/share/tomcat6 zu setzen, auch ohne Erfolg.
Hier sind die Fehlermeldungen, die ich vom Tomcat-Server sehe:
Fehler 500: Ausführen der Aktion [index] des Controllers [com.ecmhp.ecmdatabridge.generators.GenerateEmiDigestsController]
hat die Ausnahme verursacht: (JE 4.1.10) ./data/transactions/Foobar
Home-Verzeichnis: ./data/transactions/Foobar ENV_NOT_FOUND:
EnvironmentConfig.setAllowCreate ist false, sodass die Erstellung der Umgebung nicht gestattet ist, aber es gibt keine Protokolldateien im Umgebungsverzeichnis. Umgebung ist ungültig und muss geschlossen werden.
Servlet: grails
URI: /bridge/grails/generateEmiDigests/index.dispatch
Ausnahmemeldung: (JE 4.1.10) ./data/transactions/Foobar
Home-Verzeichnis: ./data/transactions/Foobar ENV_NOT_FOUND:
EnvironmentConfig.setAllowCreate ist false, sodass die Erstellung der Umgebung nicht gestattet ist, aber es gibt keine Protokolldateien im Umgebungsverzeichnis. Umgebung ist ungültig und muss geschlossen werden.
Verursacht durch: (JE 4.1.10) ./data/transactions/Foobar
Home-Verzeichnis: ./data/transactions/Foobar ENV_NOT_FOUND:
EnvironmentConfig.setAllowCreate ist false, sodass die Erstellung der Umgebung nicht gestattet ist, aber es gibt keine Protokolldateien im Umgebungsverzeichnis. Umgebung ist ungültig und muss geschlossen werden.
Haben Sie eine Idee, wie ich das aktuelle Arbeitsverzeichnis für mein Tomcat-WAR setzen kann, damit es die Berkeley-DB-./data/transaction-Dateien findet? Oder eine Idee, wie ich herausfinden kann, was das aktuelle Arbeitsverzeichnis ist, wenn meine Grails-App gestartet wird?