2017-10-17 5 views
0

테스트 목적으로 SQLite 데이터베이스에 액세스하기 위해 Tomcat과 함께 번들로 제공되는 Liferay 7을 사용하고 있습니다. 데이터베이스는 시스템 계정 "모든 계정"을 절대적으로 제어하는 ​​C :/Eclipse 폴더에있는 빈 "test.db"파일입니다. 따라서 Windows 권한이 문제가되어서는 안됩니다.SQLite 드라이버를 호출 할 때 지속적으로 "IOException : Access Denied"가 발생했습니다.

내 포틀릿의 렌더링 방법에 위치한이 코드는, 어떻게 든 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를

작업을 수행하는 코드는 바로 .DB 파일에 액세스하려고

일부를 만들

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()); 
       } 
      } 

    } 

어쨌든, 나는이 오류가 계속 (스파 : 테이블과는 단일 쿼리를 수행 다만 모든 것은 내가 더 일을 할 수있어 너무 연결되어 있는지, 이것이다 표면 가공 모드) :

때 java.io.IOException : Acceso가 에서 java.io.File.createNewFile (File.java:1012에서 java.io.WinNTFileSystem.createFileExclusively (기본 방법))에서 denegado 닷컴 .com.liferay.portlet.FilterChainImpl.doFilter (FilterChainImpl.java:103) (많은 , 더 많은 라인. 전형적인 Liferay).

무슨 일입니까? 이 문제를 어떻게 해결할 수 있습니까?

+0

슬래시가있는 연결 URL을 사용해 보셨습니까? 나는 "jdbc : sqlite : C : /Eclipse/test.db"를 의미합니까? –

+0

그런데 stacktrace가 코드와 일치하지 않습니다 :'Conector.test' 메소드에'File.createNewFile' 호출이 없습니다 ... –

답변

0

사용자 이름과 암호를 제공해야합니다. DriverManager.getConnection (url, YOUR_USERNAME, YOUR_PASSWORD)을 사용하십시오.

+0

액세스가 거부되었으므로 파일 시스템 레벨에 있기 때문에 가능성이 없습니다 오류의 원인 –