当尝试调用SQLite驱动程序时不断获得“IOException:访问被拒绝”
我试图将与Liferay 7捆绑在一起的Tomcat访问SQLite数据库进行测试。该数据库是一个空的“test.db”文件,位于C:/ Eclipse,该文件夹对系统帐户“所有帐户”具有绝对控制权。所以Windows权限不应该成为问题。当尝试调用SQLite驱动程序时不断获得“IOException:访问被拒绝”
此代码,位于我的portlet的渲染方法,不知何故,抛出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);
}
牛逼
执行任务的代码只是试图访问.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 denegado在 java.io.WinNTFileSystem.createFileExclusively(本机方法)在 java.io.File.createNewFile(File.java:1012)在 COM .db.Conector.test(Conector.java:24)at com.test.PortletMVC.render(PortletMVC.java:25)at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:103) (many ,还有更多的线路。典型的Liferay)。
发生了什么事?我怎样才能解决这个问题?
你需要给它用户名和密码。使用DriverManager.getConnection(url,YOUR_USERNAME,YOUR_PASSWORD)
访问被拒绝在文件系统级别,所以这是不可能的错误的原因。 –
您是否尝试过使用斜杠的连接URL?我的意思是“jdbc:sqlite:C:/Eclipse/test.db”? –
顺便说一句,你的堆栈跟踪代码不匹配:你的'Conector.test'方法中没有'File.createNewFile'调用... –