今天搞了一下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的管理。
这忙忙碌碌的一天,3台本本,3种OS:mac 、 thinkpad+windows、 dell+redhat
哈哈,总结就是mac是天使脸蛋(UI漂亮)魔鬼身材(内核又是类unix的)
- 大小: 118.7 KB
分享到:
相关推荐
- **动态性**:得益于Groovy语言的动态特性,Grails支持动态类型和脚本化编程,使得开发者能够快速编写代码并部署应用。 - **一站式解决方案**:Grails提供了一套完整的开发环境,包括构建工具、测试框架、数据库...
2. 构建可部署包:使用`grails war`命令生成WAR文件,包含了Grails应用的所有依赖。 3. 部署:将WAR文件上传至服务器的Web容器目录下,如Tomcat的webapps目录,然后启动或重启容器。 4. 配置:根据应用需求,可能...
- **部署和运维**:了解 Grails 应用在生产环境下的部署流程,包括配置管理、日志记录和监控策略。 ### 实战应用 本书不仅提供了理论知识,还包含了大量的实战案例,如构建 RESTful API、实现安全认证、集成第三方...
11. **持续集成与部署**:设置Jenkins或其他CI工具,进行自动化构建和部署,以及Grails应用的发布流程。 书中附带的`gswg_source_v1_4.zip`源码文件包含了各个阶段的学习示例,这将让你有机会实践所学,通过动手...
通过阅读《Grails+groovy 完整参考手册.docx》,你可以更深入地了解这两个技术,包括它们的原理、最佳实践以及实际应用中的案例。无论你是初学者还是有经验的开发者,这份手册都将是你学习和提升技能的宝贵资源。
《Grails技术详解:中文文档与Fckeditor-0.9.5插件解析》 Grails,作为一款基于Groovy语言的开源Web应用框架,以其高效、简洁的特性深受开发者喜爱。它集成了许多Java EE的功能,同时简化了开发流程,使得开发人员...
Grails+ZK文档,Grails+ZK文档,Grails+ZK文档,Grails+ZK文档
用于将 Java 和 Grails 应用程序部署到 AWS Linux 上的 Tomcat 的 gradle 插件。 它可以与 AWS ELB 交互以更新多个服务器,并使用 SSH 连接到每个服务器以停止应用程序、更新它,然后重新启动它。 定义了三个任务:...
# 一、grails打包tomcat本地部署和jar部署[参考]
Grails默认使用H2内存数据库,如需使用MySQL,需修改`Config.groovy`中的数据库配置。添加如下代码: ```groovy dataSource { pooled = true driverClassName = "com.mysql.jdbc.Driver" username = "your_db_...
grails+Xfire webservice
这个例子实现了用grails 连接mysql 数据库,并且把内容显示出来,可以增删除改,下载这个例子后大家要把jdk tomcat grails环境搭好,然后用grails run-app来执行,也可以用其它的开发工具,本人用的是netbeans
在Eclipse中开发Grails项目是一项技术性较强的工作,涉及到多个步骤和配置。Grails是一个基于Groovy语言的开源Web应用框架,它简化了Java开发流程。以下将详细阐述如何在Eclipse环境下配置Grails项目并进行调试。 ...
部署时,通常会将Grails应用打包成WAR文件,部署在Tomcat、Jetty等Servlet容器上。 8. **最佳实践** 在实际开发中,了解并遵循Grails的最佳实践至关重要,例如,合理划分领域模型、充分利用GSP标签库、使用Service...
使用`grails war`命令打包应用为WAR文件,然后在服务器上进行部署。 7. **支持的Java EE容器** Grails兼容广泛的Java应用服务器,包括但不限于Apache Tomcat、Jetty、Resin等,这使得Grails应用能在不同的环境中...
部署 Grails 应用通常涉及将应用打包成 `.war` 文件并部署到应用服务器如 Tomcat 上。发布前需要注意: - 如果数据库和服务器位于同一系统下,则数据库连接地址应设为 `localhost`。 - 构建后生成的 `.war` 文件...
Grails使用Gradle作为构建工具,提供了`grails war` 命令生成可部署的WAR文件,方便在各种Java应用服务器上部署。 九、测试 Grails内置了测试框架,支持单元测试、集成测试和功能测试。通过`test-app` 命令,可以...