有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

连接到SQLite数据库时发生java GAE受限类错误

我正在使用EclipseNeon、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) 个答案

  1. # 1 楼答案

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

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

    希望它能帮助别人