Grails部署 = war + Tomcat + MySQL

今天搞了一下Grails项目的部署,准确的说,部署操作和Grails无关,因为可以很方便的打成war包,就可以放在标准的Java容器里了。

步骤:
1. 用grails命令行或IDEA里直接点按钮,就可以打成war包。这里有个方便之处是,所有以plugin存在的第三方包,都会自动打到war包里,相当方便。当然这导致war包也高达30多M,应该有地方可以配置只打程序的部分。

2. 以lib形式的包默认不会进入war,比如mysql的驱动。可以手工拷贝到TOMCAT_HOME/lib目录下。

3. 把war丢到TOMCAT_HOME/webapps下,一切都那么简单

简单是简单,但也要小心
1. 首先是mysql默认不允许远程访问,因为在开发的时候,datasource用的url是localhost,没发现这个问题。当该为具体的ip地址时, 即使从本机,也无法访问mysql
开放远程权限:
use mysql;
select host, user,password from user;
+------------+------+----------+
| host       | user | password |
+------------+------+----------+
| localhost  | root |          |
| aliyun.bit | root |          |
| 127.0.0.1  | root |          |
| localhost  |      |          |
| aliyun.bit |      |          |
+------------+------+----------+
grant all privileges on *.* to 'root'@'%' identified by '1234' with grant option;


2. 其次就是坑爹的mysql驱动,开始windows和linux的应用死活起不来,如果使用内存数据库就可以启动。于是我定位应该是和mysql的连接问题。
Jan 9, 2013 9:40:39 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart


其实早应该想到是驱动的jar没有包括进来,但是mac系统中,我并没做这个步骤(也没有设置classpath),也能启动成功,让我误以为是其它问题。

后来经过反复筛查发现,mac的驱动藏在这个目录下(竟然不是JAVA_HOME/lib)
macBook-Pro:Extensions xxx$ pwd
/Library/Java/Extensions
macBook-Pro:Extensions xxx$ ls
mysql-connector-java-5.1.22-bin.jar
(mac的目录结构真的好烦人,还有大写。。。)

这才想到把驱动丢到win和linux的tomcat里试试,一下就通了。
D:\develop\JAVA\TOMCAT\apache-tomcat-7.0.34\lib
mysql-connector-java-5.1.22-bin.jar


3. 因为部署不能debug,也是导致排查问题只能一次次的尝试。。。。


附上三个系统的环境变量,其实都一样。
macBook-Pro:Extensions xxx$ env |grep HOME
GRAILS_HOME=/Library/Java/grails-2.1.2
TOMCAT_HOME=/usr/local/apache-tomcat-7.0.34
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home
MYSQL_HOME=/usr/local/mysql

[cccc@dell ~]$ env |grep HOME
GRAILS_HOME=/home/calvin/grails-2.1.1
TOMCAT_HOME=/home/calvin/apache-tomcat-7.0.34
JAVA_HOME=/home/calvin/jdk1.7.0_09

GRAILS_HOME也是需要的,相当于j2ee、spring、hibernate等包都在里面了,这倒是简化了对第三方Jar的管理。



Grails部署 = war + Tomcat + MySQL_第1张图片
这忙忙碌碌的一天,3台本本,3种OS:mac 、 thinkpad+windows、 dell+redhat
哈哈,总结就是mac是天使脸蛋(UI漂亮)魔鬼身材(内核又是类unix的)

你可能感兴趣的:(tomcat,mysql,grails)