我無法訪問服務器上的數據庫。我正在使用代碼片段來嘗試連接。使用相對路徑定位(連接到)數據庫時遇到困難
String currentDir = new File(".").getAbsolutePath();
String currdir = System.getProperty("user.dir");
System.out.println("EPIC currentDir = " + currentDir);
System.out.println("EPIC currdir = " + currdir);
String builder = "jdbc:sqlite:"+ currentDir +"dbname";
現在..的printlns告訴我說:
currentDir = /usr/local/cpanel/base/.
currdir = /usr/local/cpanel/base
,我知道這是怎麼回事,因爲我的數據庫位於 給的SQLException ../WEB-INF/lib/ DBNAME 所以毫不奇怪,我收到此錯誤信息:
java.sql.SQLException: opening db: '/usr/local/cpanel/base/.dbname': Permission denied
所以我的問題是這樣的..什麼是基地後如何,涉及到我的目錄(從哪裏servl et運行)?我沒有SSH去尋找它(卷眼睛),如果任何人都可以闡明這個問題,我會很高興! 在此先感謝!
編輯:怪異的東西
我測試這一切都與這些命令..
String currentDir = new File("dbname").getAbsolutePath();
String currdir = System.getProperty("user.dir");
System.out.println("EPIC currentDir = " + currentDir);
System.out.println("EPIC currdir = " + currdir);
System.out.println("EPICER = " + this.getClass().getResource("dbname").toString());
System.out.println("EPICEST! = ");
這是輸出:
EPIC currentDir = /usr/local/cpanel/base/dbname
< <這個人給我的「權限被拒絕「
EPIC currdir = /usr/local/cpanel/base
< <這個人給我的 「權限被拒絕」
EPICEST! =
< <這是確定..但等待..沒有EPICER ???
System.out.println("EPICER = " + this.getClass().getResource("dbname").toString());
不打印!什麼?是我的日誌被過濾,以防止我查看路徑?此外,沒有這些路徑的工作:(
< < < < --- UPDATE --- >>>>
沒有打印,因爲「這個」被返回null和我其實是在這個越來越NPE 。線;因此,沒有任何的println咄
最後編輯時間: 解決
好了,我要去一下都錯了,我張貼這以防其他一些可憐的傢伙大約是浪費!像我這樣做了三天..
this.getClass().getResource("dbname").toString())
「這個」是因爲什麼而返回null的?意外的是,沒有ServletContext的 所以
getServletContext()
也返回null(這是我與後來的實驗)
我從其他資源學的互聯網絡,我打算這樣做這樣的方式是完全錯誤的,因爲,我每次重新部署WAR文件,數據庫將被覆蓋。所以我在我的/ home /用戶名/被叫DBFILES創建一個小的目錄和使用的命令:
String dir= "jdbc:sqlite:/home/username/dbfiles/dbname.db";
connection = DriverManager.getConnection(dir);
和它的作品!
謝謝大家
錯誤說:「訪問被拒絕」,所以我不認爲有什麼問題與路徑。 – 2012-03-15 08:55:42
[如何從Web檔案的WEB-INF目錄加載資源]的可能重複(http://stackoverflow.com/questions/1108434/howto-load-a-resource-from-web-inf-directory-of- a-web-archive) – Snicolas 2012-03-15 08:57:53
aah,所以它找到數據庫但沒有讀/寫權限? – tricknology 2012-03-15 08:58:09