我正在尝试将Liferay 7与Tomcat捆绑在一起,以便访问SQLite数据库以进行测试。该数据库是一个空的“test.db”文件,位于C:/ Eclipse,该文件夹对系统帐户“所有帐户”具有绝对控制权。所以Windows权限应该不是问题。
此代码位于我的portlet的render方法中,以某种方式抛出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 at java.io.WinNTFileSystem.createFileExclusively(Native Method)at java.io.File.createNewFile(File.java:1012)at com.db.Conector.test(Conector.java:24)at com.test.PortletMVC.render(PortletMVC.java:25)at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:103) (许多,更多的线。典型的Liferay)。
发生了什么事?我该如何解决这个问题?
答案 0 :(得分:0)
您需要为其提供用户名和密码。使用DriverManager.getConnection(url,YOUR_USERNAME,YOUR_PASSWORD)