连接到SQLite数据库时GAE限制类错误

时间:2016-07-12 08:27:26

标签: java sqlite google-app-engine jdbc jetty

我正在使用Eclipse Neon,GWT和sqlite编写Web应用程序。我在某个点上的webapp连接到位于war目录中的数据库(为了使数据库可用于服务器,这是必需的)。当我尝试创建连接时,严格地处于读取模式:

Properties config = new Properties();
config.setProperty("open_mode", "1");
Class.forName("org.sqlite.JDBC");
return DriverManager.getConnection("jdbc:sqlite:db.db");

控制台中出现以下异常堆栈:

java.lang.NoClassDefFoundError: java.io.FileOutputStream is a restricted class. Please see the Google  App Engine developer's guide for more details.
at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:52)
at org.sqlite.SQLiteJDBCLoader.extractAndLoadLibraryFile(SQLiteJDBCLoader.java:165)
at org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary(SQLiteJDBCLoader.java:290)
at org.sqlite.SQLiteJDBCLoader.initialize(SQLiteJDBCLoader.java:65)
at org.sqlite.core.NativeDB.load(NativeDB.java:53)
at org.sqlite.core.CoreConnection.open(CoreConnection.java:211)
at org.sqlite.core.CoreConnection.<init>(CoreConnection.java:76)
at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:24)
at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:23)
at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:45)
at org.sqlite.JDBC.createConnection(JDBC.java:114)
at org.sqlite.JDBC.connect(JDBC.java:88)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
[...]

我实际上只是打开了与数据库的连接。日志被转发到控制台,因此没有文件打开来存储它们,我也不创建文件。错误源自GAE和JDBC加载器,我无法控制它。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我会回答我自己的问题......答案是,我不需要GAE,所以我不得不禁用它。我通过浏览Eclipse从war / WEB-INF / lib中删除了所有GoogleAppEngine jar并禁用了AppEngine:

RightClick on project -> Google -> AppEngine Settings... -> detick "Use Google AppEngine"

希望它可以帮助别人。

相关问题