您的位置:首页 > 运维架构 > Linux

Java Web项目从Windows移植到Linux注意事项

2014-09-02 18:50 423 查看
我将自己做的Java Web项目(CrawlerManage爬虫管理系统)从windows移植到Linux上,遇到不少问题。

1、将数据库连接配置文件(jdbc.propertites)做相应修改,

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/db_crawlerManage?useUnicode=true&characterEncoding=utf8(Linux服务器上的IP和对应的Database)

jdbc.username=jzus(Linux服务器上的数据库用户名)

jdbc.password=mzxwswws(Linux服务器上的数据库密码)

2、将我的Java Web 工程导出为 .war文件(CrawlerManage.war)。

3、将CrawlerManage.war上传到Linux服务的 root@beyond:/opt/apache-tomcat-7.0.52/webapps 目录下,即部署。

具体操作,先进到/apache-tomcat-7.0.52/webapps 目录下,然后输入rz命令,即可选择从windows上传文件到Linux制定目录下。

4、进入/apache-tomcat-7.0.52/bin目录下,然后停启Tomcat,即./shutdown.sh 和 ./startup.sh。

按道理,这样应该就没问题了!!!

浏览器输入登录界面的网址:
http://10.82.81.189:8000/CrawlerManage/Admin_Public_login.action
但是,出现

org.hibernate.exception .SQLGrammarException: could not execute query

..........................................一大推错误

..........................................一大推错误

原因:MySQL 在windows下不区分大小写,但是Linux下区分大小写(包括表名、字段等)

解决方法 No.1(我没采取这种方法,但应该可行。由于我的服务器里面Mysql的配置文件有些乱,有些问题,不是俺装的Mysql,我不采取此方法)

========人家的博客========
http://blog.sina.com.cn/s/blog_6826662b010186ks.html
MySQL在windows下是不区分大小写的,将script文件导入MySQL后表名也会自动转化为小写,结果再想要将数据库导出放到linux服务器中使用时就出错了。因为在linux下表名区分大小写而找不到表,查了很多都是说在linux下更改MySQL的设置使其也不区分大小写,但是有没有办法反过来让windows
下大小写敏感呢。其实方法是一样的,相应的更改windows中MySQL的设置就行了。

具体操作:

在MySQL的配置文件my.ini中增加一行:

lower_case_table_names = 0

其中 0:区分大小写,1:不区分大小写

注意:在修改完my.ini配置文件之后,需要重启mysql服务才能生效。 (计算器->管理->服务和应用程序)

MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:

   1、数据库名与表名是严格区分大小写的;

   2、表的别名是严格区分大小写的;

   3、列名与列的别名在所有的情况下均是忽略大小写的;

   4、变量名也是严格区分大小写的;MySQL在Windows下都不区分大小写

解决方法 No.2(我采取了此方法)
http://www.oschina.net/question/917282_88223
原来在Windows下,每个JavaBean只写@Entity就可以,会默认对应同名的表(不分大小写)。

@Entity

但是在Linux下,区分大小写,必须改为

@Entity

@table(name=”person“)

以明确注明对应的表名为:name=”person“,由于Linux区分大小写。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: