Linux部署jsp連接SQLite數(shù)據(jù)庫(kù)遇到的幾個(gè)錯(cuò)誤
分享一下我在部署jsp頁(yè)面時(shí)其中對(duì)數(shù)據(jù)庫(kù)相關(guān)操作時(shí)時(shí)遇到的一些錯(cuò)誤
1class not found
這是糾結(jié)我最久的bug了京革,當(dāng)時(shí)都快瘋了劝术,一模一樣的項(xiàng)目拷到服務(wù)器里咋就不行了呢突那?驅(qū)動(dòng)無(wú)論是是放在WEB-INF 下面還是TOMCAT 的LIB 下面還是解壓縮了放哪都不行滓鸠,后來(lái)經(jīng)過(guò)我室友的提醒好像linux和windos下java有點(diǎn)不同梭灿,linux下你的外部jar包必須放在classpath下耳鸯,你要是不在classpath下申明的話jvm是不會(huì)理你的
知道問(wèn)題原因了就好解決了榨乎,我在classpath申明一下就好了丁屎。
首先因?yàn)槲沂怯玫尿v訊云的集成鏡像鲁沥,所以里面有好幾個(gè)jdk版本呼股,這個(gè)時(shí)候用java -version命令找到當(dāng)前的版本號(hào),然后在文件管理里面逛了幾圈最終確定了當(dāng)前java的安裝目錄是這個(gè):
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.51-1.b16.el6_7.x86_64
好了找到安裝路徑之后就可以添加classpath了
在/etc目錄下找到proflie環(huán)境配置文件画恰,在它的末尾添加這樣三行彭谁,
第一行是java的路徑,因?yàn)樗皼](méi)有配置所以得自己加允扇,第三行最后面則是我的數(shù)據(jù)庫(kù)驅(qū)動(dòng)的jar包马靠,我是把它放在了java目錄下的ext文件內(nèi),
配置好了之后我發(fā)現(xiàn)還是不行蔼两,還有最后很關(guān)鍵的一步甩鳄,重啟服務(wù)器,之后就ok了
雖然還是在報(bào)錯(cuò)额划,但好在至少不是class not found了
參考鏈接:http://blog.csdn.net/jillliang/article/details/8216308
2 .attempt to write a readonly database
3 .Unable to open the database file
下面我們就來(lái)到了我的第二個(gè)和第三個(gè)錯(cuò)誤妙啃,這兩個(gè)放在一起描述是因?yàn)樗鼈兪峭粋€(gè)原因?qū)е碌摹募x寫權(quán)限問(wèn)題
我首先在這里學(xué)習(xí)了一下權(quán)限修改命令相關(guān)的用法:
http://www.runoob.com/linux/linux-comm-chmod.html
然后我就cd 到我的目錄下然后對(duì)我的數(shù)據(jù)庫(kù)文件使用chmod a+rw cloudnotes.db3來(lái)修改權(quán)限,然后錯(cuò)誤從第一個(gè)變到了第二個(gè)俊戳。揖赴。。抑胎。
我不得已右繼續(xù)搜索相關(guān)問(wèn)題燥滑,然后終于知道了
“打開(kāi)數(shù)據(jù)庫(kù)文件時(shí),還會(huì)自動(dòng)生成一個(gè)臨時(shí)文件阿逃。
服務(wù)器不僅需要對(duì)數(shù)據(jù)庫(kù)文件可寫铭拧,而且要對(duì)包含該數(shù)據(jù)庫(kù)文件的文件夾可寫赃蛛。”
然后我就cd ../到上一個(gè)文件夾搀菩,接著對(duì)整個(gè)文件夾使用chmod a+rw ROOT修改權(quán)限呕臂,finally訪問(wèn)成功了!7景稀歧蒋!沒(méi)有報(bào)錯(cuò),正常運(yùn)行
參考鏈接:http://www.cnblogs.com/xingluzhe/archive/2009/08/19/1549669.html