首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

Grails(Java愚狗)系列-Grails Getting Started(1)

2012-10-27 
Grails(Java笨狗)系列---Grails Getting Started(1)Downloading and Installinghttp://www.grails.org/Dow

Grails(Java笨狗)系列---Grails Getting Started(1)
Downloading and Installing

    http://www.grails.org/Download下载最新版本设置GRAILS_HOME环境变量Unix/Linux:GRAILS_HOME=/path/to/grails,PATH="$PATH:$GRAILS_HOME/bin"Windows:可以参考http://openmouse.iteye.com/blog/152840的环境配置,主要设置GRAILS_HOME,和PATH. 设置完成,可以通过命令提示符中输入“Grails”检查你的配置是否正确
    Welcome to Grails 1.0-RC1 - http://grails.org/Licensed under Apache Standard License 2.0Grails home is set to: /Developer/grails-dev/releases/grails-1.0-RC1No script name specified. Use 'grails help' for more info
    如果提示类似于上面部分,说明你的配置正确,可以开始Grails之旅了。
Creating an Application
    这里我们假设你使用的是windows系统打开命令行提示符,Grails提供了脚手架来创建项目,当然你的熟悉Grails的命令行
    grails command name
    上面的Grails的通用命令行创建HelloWorld项目作为开始,使用命令行:
    grails create-app helloworld
    创建了项目,下面的步骤你将要导航到helloworld目录去完成,请注意这点
    cd helloworld
    下面我们将在helloworld目录中为项目创建Controllers,对于使用过MVC的朋友,应该很清楚这点,被创建的Controllers的项目路径为:grails-app/controllers
    grails create-controller hello  
    创建后的Controllers代码:
    class HelloController {def world = {render "Hello World!"}}                           
    grails run-app
    通过上面的命令运行helloworld运行界面
Grails(Java愚狗)系列-Grails Getting Started(1)

点击上面的HelloController将导航到显示Hello world!
Getting Set-up in an IDE 关于IDE的介绍可以去Grails查看,这里不再讲述。
Convention over Configuration
    Grails使用的是“规约重于配置”,他的意思是,名字和位置来取代配置: 上面可以很好的看出
    Grails的每个文件夹代表了实际的配置,这正是Grails的优点
?* grails-app - 顶层目录for Groovy sources
????????? o conf - 配置源文件.
????????? o controllers - Web controllers - The C in MVC. See Controllers
????????? o domain - 应用程序 domain. See GORM
????????? o i18n - 国际化支持 (i18n). See Internationalization (i18n)
????????? o services - 服务层. See Services(等同于SessionBean)
????????? o taglib - 标签库. See Tag Libraries
????????? o views - Groovy 服务器页面即GSP. See GSP
??? * scripts - Gant 脚本. See Command Line Scripting
??? * src - 源文件夹
????????? o groovy - Groovy 源文件(除了controllers ,domain ,services之外的文件)
????????? o java - Java源文件
??? * test - 单元测试或者综合测试. See Testing?Running an Application
    运行项目使用的命令行:
    grails run-app
    假如你使用不同的端口来运行:
    grails -Dserver.port=8090 run-app
Testing an Application
    测试:
    grails test-app
Deploying an Application
    部署:
    grails war

Supported Java EE Containers
    支持的服务器:
* Tomcat 5.5?
* Tomcat 6.0
* GlassFish v1 (Sun AS 9.0)
* GlassFish v2 (Sun AS 9.1)
* Sun App Server 8.2
* Websphere 6.1
* Websphere 5.1
* Resin 3.2
* Oracle AS
* JBoss 4.2
* Jetty 6.1
* Jetty 5
* Weblogic 7/8/9/10

?

1 楼 kwj 2008-01-25   我照着你的步骤做
可是到了这一步grails -Dserver.port=9090 run-app
在地址栏输入http://localhost:9090/helloworld
每次都有这样的错误:

Server running. Browse to http://localhost:9090/helloworld
2008-01-25 16:31:56.292:/helloworld:INFO:  GSP servlet initialized
2008-01-25 16:31:58.886::WARN:  Error for /helloworld/
java.lang.NoSuchMethodError: getContextPath
        at org.codehaus.groovy.grails.web.mapping.RegexUrlMapping.createURLInter
nal(RegexUrlMapping.java:179)
        at org.codehaus.groovy.grails.web.mapping.RegexUrlMapping.createURLInter
nal(RegexUrlMapping.java:241)
        at org.codehaus.groovy.grails.web.mapping.RegexUrlMapping.createURL(Rege
xUrlMapping.java:225)
        at org.codehaus.groovy.grails.web.mapping.RegexUrlMapping.createURL(Rege
xUrlMapping.java:256)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
95)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassH
elper.java:599)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:904)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:947)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:740)
        at org.codehaus.groovy.runtime.InvokerHelper.invokePojoMethod(InvokerHel
per.java:753)
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.
java:741)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(Scrip
tBytecodeAdapter.java:167)
        at org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib$_clos
ure4.doCall(ApplicationTagLib.groovy:177)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
95)
        at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassH
elper.java:599)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:904)
        at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:947)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:740)
        at groovy.lang.Closure.call(Closure.java:292)

我用的是Grails 1.0-RC4,不知是不是版本的问题
        at org.codehaus.groovy.grails.web.pages.GroovyPage.captureTagOutput(Groo
vyPage.java:375)
2008-01-25 16:31:58.964:/helloworld:INFO:  Initializing Spring FrameworkServlet
'grails-errorhandler'

我用的是

热点排行