Linux部署jsp连接SQLite数据库遇到的几个错误
分享一下我在部署jsp页面时其中对数据库相关操作时时遇到的一些错误
1class not found
这是纠结我最久的bug了,当时都快疯了,一模一样的项目拷到服务器里咋就不行了呢?驱动无论是是放在WEB-INF 下面还是TOMCAT 的LIB 下面还是解压缩了放哪都不行,后来经过我室友的提醒好像linux和windos下java有点不同,linux下你的外部jar包必须放在classpath下,你要是不在classpath下申明的话jvm是不会理你的
知道问题原因了就好解决了,我在classpath申明一下就好了。
首先因为我是用的腾讯云的集成镜像,所以里面有好几个jdk版本,这个时候用java -version命令找到当前的版本号,然后在文件管理里面逛了几圈最终确定了当前java的安装目录是这个:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.51-1.b16.el6_7.x86_64
好了找到安装路径之后就可以添加classpath了
在/etc目录下找到proflie环境配置文件,在它的末尾添加这样三行,
第一行是java的路径,因为它之前没有配置所以得自己加,第三行最后面则是我的数据库驱动的jar包,我是把它放在了java目录下的ext文件内,
配置好了之后我发现还是不行,还有最后很关键的一步,重启服务器,之后就ok了
虽然还是在报错,但好在至少不是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
下面我们就来到了我的第二个和第三个错误,这两个放在一起描述是因为它们是同一个原因导致的——文件读写权限问题
我首先在这里学习了一下权限修改命令相关的用法:
http://www.runoob.com/linux/linux-comm-chmod.html
然后我就cd 到我的目录下然后对我的数据库文件使用chmod a+rw cloudnotes.db3来修改权限,然后错误从第一个变到了第二个。。。。
我不得已右继续搜索相关问题,然后终于知道了
“打开数据库文件时,还会自动生成一个临时文件。
服务器不仅需要对数据库文件可写,而且要对包含该数据库文件的文件夹可写。”
然后我就cd ../到上一个文件夹,接着对整个文件夹使用chmod a+rw ROOT修改权限,finally访问成功了!!!没有报错,正常运行
参考链接:http://www.cnblogs.com/xingluzhe/archive/2009/08/19/1549669.html