Relativer Pfad zu der hsqldb-Dateien in eine web-app nicht funktioniert?
Ich bin mit hsqldb für meine Spring-basierte java-webapp. Ich setzen Sie Datenbank-Dateien (mydb.lck, mydb.Eigenschaften,..) im Verzeichnis src\main\java\data-Ordner, so dass Sie sind veröffentlicht in WEB-INF\classes\data.
In der datasource-Konfiguration angeben ich diesen relativen Pfad zur JVM-Arbeitsverzeichnis. Wie Führung in hsqldb Dokumente.
portal.jdbc.url=jdbc:hsqldb:file:/data/mydb
(Ist das Trennzeichen Recht für Windows?)
Aber der Frühling scheint nicht diesen Weg beschreiten und darauf zu bestehen, zu fordern,
java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: CUSTOMER
org.hsqldb.jdbc.Util.sqlException(Unknown Source)
Wenn ich allerdings einen absoluten Pfad angeben, es funktioniert einwandfrei
portal.jdbc.url=jdbc:hsqldb:file:d:\\TomcatServer\\apache-tomcat-7.0.10\\wtpwebapps\\myportal-app\\data\\mydb
Sollte ich miss Verständnis JVM Arbeitsverzeichnis auf eine web-app?
Jede Hilfe ist willkommen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es, dass Tomcat nicht bieten uns ein Eigenschaften-variable (wie "webroot"), um Verweise auf meinen Anwendungskontext. Also meine Lösung ist, sich zu registrieren solche Eigenschaften im Servlet-Kontext-listener.
Mein code:
Hinzufügen und Hörer in web.xml vor dem Frühjahr Kontext ausgelöst wird
Dann habe ich die Eigenschaft in Hsqldb-Einstellung.
Hoffe, dass dies hilfreich für jemanden, der laufen kann, das gleiche problem.
HSQLDB 2.2.8 oder höher ermöglicht es, eine variable in der Verbindungs-URL. Die variable kann eine beliebige system-Eigenschaft, wie die web-Anwendung-Verzeichnis-Pfad.
http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html#dpc_variables_url
Finden Sie im Abschnitt "Variablen, die In Verbindungs-URL"
http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html
Beispiel
jdbc:hsqldb:file:${mydbpath};sql.enforce_types=true
Herausgefunden Tomcat 8 Dank fredt
url = "jdbc:hsqldb:file:" + mydbpath;
Wo mydbpath ist eine variable mit realtive Pfad zur Datenbank angegeben.
Irgendwie funktioniert