Ich versuche mit Liferay 7 im Lieferumfang von Tomcat, zu Testzwecken auf eine SQLite-Datenbank zuzugreifen. Die Datenbank ist eine leere Datei "test.db", die sich im Ordner C:/Eclipse befindet, der absolute Kontrolle über das Systemkonto "Alle Konten" hat. Windows Berechtigungen sollten also kein Problem sein.Immer "IOException: Zugriff verweigert" beim Aufruf des SQLite-Treibers
Dieser Code, bei der Render-Methode meiner Portlet befindet, wirft irgendwie eine IOException:
@Override
public void render(RenderRequest arg0, RenderResponse arg1) throws IOException, PortletException {
try {
Conector.test();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("ERROR SQLITE: "+e.getMessage());
}
super.render(arg0, arg1);
}
T
Der Code, der die Aufgabe nur versucht, führt die Db-Datei zuzugreifen, erstellen Sie einige
public static void test() throws ClassNotFoundException
{
/**
* Connect to a sample database
*/
Connection conn = null;
try {
Class.forName("org.sqlite.JDBC");
// db parameters
String url = "jdbc:sqlite:C:\\Eclipse\\test.db";
// create a connection to the database
conn = DriverManager.getConnection(url);
System.out.println("Connection to SQLite has been established.");
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
System.out.println("Internal sqlite error: "+ex.getMessage());
}
}
}
Aber irgendwie, ich erhalte diesen Fehler (spa: Tabellen und eine einzelne Abfrage durchführen, nur um zu sehen, dass alles weitere Dinge, das ist zu tun, damit verbunden ist, ich bin in der Lage nish-Modus):
java.io.IOException: Acceso denegado bei java.io.WinNTFileSystem.createFileExclusively (native Methode) bei java.io.File.createNewFile (File.java:1012) bei com .db.Conector.test (Conector.java:24) um com.test.PortletMVC.render (PortletMVC.java:25) um com.liferay.portlet.FilterChainImpl.doFilter (FilterChainImpl.java:103) (viele , viele weitere Zeilen. Typisches Liferay).
Was passiert? Wie kann ich das beheben?
Haben Sie die Verbindungs-URL mit Schrägstrichen versucht? Ich meine "jdbc: sqlite: C: /Eclipse/test.db"? –
Übrigens entspricht Ihr StackTrace nicht Ihrem Code: Es gibt keinen 'File.createNewFile' Aufruf in Ihrer' Conector.test' Methode ... –