在我的轻量级web应用程序中,我想使用HSQLDB。
在启动HSQLDB时,我使用的url是这样的:"jdbc:hsqldb:file:./database/“。
在本地tomcat上,一切正常,但在google-app-engine上,我得到了下面的异常;
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)有没有人能给出一个线索来定义在google-app-engine上运行HSQL db的正确url?
发布于 2011-05-05 00:17:31
我不认为GAE允许你在这个级别编写文件。
您可以使用HSQLDB内存数据库,该数据库不需要文件,但在应用程序重新启动时会被擦除。
为什么不使用JDO呢?
发布于 2011-05-05 11:10:07
在GAE中,您不能写入文件,这显然意味着HSQLDB不能在GAE上工作。正如Mikhas建议的那样,你可以在内存中使用HSQLDB,它不会在任何地方持久存在。如果您正在使用GAE,那么除了使用JDO或JPA之外,您别无选择。Appengine已经针对其进行了优化。但在未来,我们可能会支持在应用程序引擎中使用关系数据库。但就目前而言,答案似乎是否定的。
发布于 2011-05-06 18:34:10
(也是开放源码的Java) H2 database也许可以工作。请参阅项目H2GAE (请不要这样做,它只是试验性的)。然而,我并没有亲自测试这一点。
https://stackoverflow.com/questions/5886404
复制相似问题