2017-10-17 2 views
0

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?

+0

Haben Sie die Verbindungs-URL mit Schrägstrichen versucht? Ich meine "jdbc: sqlite: C: /Eclipse/test.db"? –

+0

Übrigens entspricht Ihr StackTrace nicht Ihrem Code: Es gibt keinen 'File.createNewFile' Aufruf in Ihrer' Conector.test' Methode ... –

Antwort

0

Sie müssen den Benutzernamen und das Passwort eingeben. Verwenden Sie DriverManager.getConnection (URL, YOUR_USERNAME, YOUR_PASSWORD)

+0

Der Zugriff verweigert ist auf Dateisystemebene, also ist dies nicht wahrscheinlich die Ursache des Fehlers. –

Verwandte Themen