首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jar投掷中嵌入的HSQLDB

Jar投掷中嵌入的HSQLDB
EN

Stack Overflow用户
提问于 2017-09-07 04:37:38
回答 1查看 173关注 0票数 0

我在jar的资源目录中的fat-jar中嵌入了一个HSQLDB。当我的脚本试图访问数据库时,它抛出一个关于缺少.lck文件的错误。但是,我的印象是jar文件中的DB将始终以只读模式访问。

代码语言:javascript
复制
Caused by: org.hsqldb.HsqlException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@18f6cf91[file =/mnt/c/ctakes/SparkCtakes/jar:file:/mnt/c/ctakes/SparkCtakes/lib/ctakes-assembly-4.0.1.jar!/resources/org/apache/ctakes/dictionary/lookup/fast/sno_rx_16ab/sno_rx_16ab.lck, exists=false, locked=false, valid=false, ] method: openRAF reason: java.io.FileNotFoundException: /mnt/c/ctakes/SparkCtakes/jar:file:/mnt/c/ctakes/SparkCtakes/lib/ctakes-assembly-4.0.1.jar!/resources/org/apache/ctakes/dictionary/lookup/fast/sno_rx_16ab/sno_rx_16ab.lck (No such file or directory)
        at org.hsqldb.error.Error.error(Unknown Source)
        at org.hsqldb.error.Error.error(Unknown Source)
        at org.hsqldb.persist.LockFile.newLockFileLock(Unknown Source)
        at org.hsqldb.persist.Logger.acquireLock(Unknown Source)
        at org.hsqldb.persist.Logger.open(Unknown Source)
        at org.hsqldb.Database.reopen(Unknown Source)
        at org.hsqldb.Database.open(Unknown Source)
        at org.hsqldb.DatabaseManager.getDatabase(Unknown Source)
        at org.hsqldb.DatabaseManager.newSession(Unknown Source)
        ... 112 more

我创建这个包含数据库资源的fat-jar的方法是将resources文件夹放在src/main/scala/resources中,然后使用sbt-assembly打包所有内容。

EN

回答 1

Stack Overflow用户

发布于 2017-09-29 06:46:05

当只读数据库位于Jar文件中时,访问数据库的URL必须是res:类型的URL。

假设Jar中的顶级目录是org,则URL将如下所示:

代码语言:javascript
复制
jdbc:hsqldb:res:/org/apache/ctakes/dictionary/look‌​up/fast/sno_rx_16ab/‌​sno_rx_16ab
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46083956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档