Использование HSQLDB в Google-App-Engine - PullRequest
3 голосов
/ 04 мая 2011

В моем легком веб-приложении, которое будет работать на google-app-engine, я хочу использовать HSQLDB.

При запуске HSQLDB я использую URL-адрес, подобный следующему: "jdbc: hsqldb: file: ./ database /".

На локальном tomcat все идет хорошо, но в google-app-движок Я получаю исключение ниже:

Constructor threw exception; nested exception is com.hp.hpl.jena.sdb.SDBException: SQL Exception while connecting to database: jdbc:hsqldb:file:./database/appname : File input/output error ./database/appname.properties java.security.AccessControlException: access denied (java.io.FilePermission ./database write)

Кто-нибудь может дать подсказку, чтобы определить правильный URL для запуска базы данных HSQL на google-app-engine?

Ответы [ 3 ]

2 голосов
/ 05 мая 2011

В GAE вы не можете записывать в файл, что, очевидно, означает, что HSQLDB не будет работать в GAE. Как и предлагал Михас, вы можете использовать HSQLDB IN Memory, который нигде не сохранится. Если вы используете GAE, у вас нет другого выбора, кроме как использовать JDO или JPA. Для чего был оптимизирован Appengine. Но в будущем мы можем получить поддержку для использования реляционных баз данных внутри движка приложения. Но, как будто сейчас, ответ НЕТ.

2 голосов
/ 04 мая 2011

Я не думаю, что GAE позволяет вам писать файлы на этом уровне.

Вы можете использовать базу данных памяти HSQLDB, которая не требует файла, но стирается при перезапуске приложения.

Почему вы не используете JDO?

1 голос
/ 06 мая 2011

База данных (также с открытым исходным кодом Java) H2 может работать. Смотрите проект H2GAE (пожалуйста, не экспериментально). Однако я не проверял это сам.

...