无法连接到 sqlite 数据库 - _syscall() 中的内部错误

Unable to connect to sqlite database - internal error in _syscall()

我正在使用 Eclipse Neon、GWT 和 sqlite 编写 Web 应用程序。我的 webapp 在某个点连接到位于 war 目录中的数据库(我知道该应用程序只能访问该目录,服务器端)。当我尝试创建连接时:

Class.forName("org.sqlite.JDBC");
return DriverManager.getConnection("jdbc:sqlite:db.db");

控制台出现以下异常:

java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\c:\Users\me\workspace\BookLovers\war\db.db" "read")
[...]
GRAVE: javax.servlet.ServletContext log: Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract boolean it.me.gc.booklovers.client.LoginService.login(java.lang.String,int) throws java.lang.IllegalArgumentException' threw an unexpected exception: java.lang.Error: Internal Error in _syscall()
[...]
Caused by: java.lang.Error: Internal Error in _syscall()

这是我第一次遇到这样的错误,互联网似乎没有注意到这个问题。我自己无法解释的一件事是为什么 "C:/" 在数据库路径中重复两次;此外,如果异常只是一个 "access denied" 异常,我会理解,但我认为我做对了(我也尝试将数据库移动到 WEB-INF 文件夹中,但无济于事)。

你怎么看?

事实证明,问题似乎是由旧版本的 .jar 连接器引起的。使用更新的连接器解决了这个问题。谢谢你,Apostolos。