Friday April 11, 2008
Getting Started with Grails on GlassFish
This blog has published good
amount of content on how Ruby-on-Rails
applications can be deployed on GlassFish.
Grails is another
popular MVC-based framework that leverages the Groovy
language. Basically, Grails : Groovy :: Rails : Ruby.
Starting today, I plan to start publishing content on Grails and talk
about how GlassFish
v3 is turning out to be a home for several scripting
languages - Ruby/JRuby/Rails, JavaScript/Phobos,
Groovy/Grails and more to be added.
This blog shows how to get started with Grails and deploy a simple
application on GlassFish v3. Lets go!
| ~/testbed/grails-1.0.2
>export
GRAILS_HOME=`pwd` ~/testbed/grails-1.0.2 >export PATH=$GRAILS_HOME/bin:$PATH |
| ~/testbed/grails-1.0.2
>grails Welcome to Grails 1.0.2 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: /Users/arungupta/testbed/grails-1.0.2 No script name specified. Use 'grails help' for more info |
| ~/testbed/grails-1.0.2/samples
>grails create-app
helloworld Welcome to Grails 1.0.2 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: /Users/arungupta/testbed/grails-1.0.2 Base Directory: /Users/arungupta/testbed/grails-1.0.2/samples Note: No plugin scripts found Running script /Users/arungupta/testbed/grails-1.0.2/scripts/CreateApp.groovy Environment set to development [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/src [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/src/java [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/src/groovy [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/controllers [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/services [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/domain [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/taglib [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/utils [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/views [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/views/layouts [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/i18n [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/conf [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/test [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/test/unit [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/test/integration [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/scripts [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/web-app [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/web-app/js [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/web-app/css [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/web-app/images [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/web-app/META-INF [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/lib [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/conf/spring [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/conf/hibernate [propertyfile] Creating new property file: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/application.properties [copy] Copying 2 files to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld [copy] Copying 2 files to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/web-app/WEB-INF [copy] Copying 5 files to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/web-app/WEB-INF/tld [copy] Copying 87 files to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/web-app [copy] Copying 17 files to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app [copy] Copying 1 file to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld [copy] Copying 1 file to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld [copy] Copying 1 file to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld [propertyfile] Updating property file: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/application.properties Created Grails Application at /Users/arungupta/testbed/grails-1.0.2/samples/helloworld |
| total
56 drwxr-xr-x 14 arungupta arungupta 476 Apr 10 10:44 . drwxr-xr-x 3 arungupta arungupta 102 Apr 10 10:44 .. -rw-r--r-- 1 arungupta arungupta 5911 Apr 10 10:44 .classpath -rw-r--r-- 1 arungupta arungupta 553 Apr 10 10:44 .project -rw-r--r-- 1 arungupta arungupta 115 Apr 10 10:44 application.properties -rw-r--r-- 1 arungupta arungupta 1464 Apr 10 10:44 build.xml drwxr-xr-x 10 arungupta arungupta 340 Apr 10 10:44 grails-app -rw-r--r-- 1 arungupta arungupta 1805 Apr 10 10:44 helloworld.launch -rw-r--r-- 1 arungupta arungupta 2287 Apr 10 10:44 helloworld.tmproj drwxr-xr-x 2 arungupta arungupta 68 Apr 10 10:44 lib drwxr-xr-x 2 arungupta arungupta 68 Apr 10 10:44 scripts drwxr-xr-x 4 arungupta arungupta 136 Apr 10 10:44 src drwxr-xr-x 4 arungupta arungupta 136 Apr 10 10:44 test drwxr-xr-x 8 arungupta arungupta 272 Apr 10 10:44 web-app |
| ~/testbed/grails-1.0.2/samples/helloworld
>grails run-app Welcome to Grails 1.0.2 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: /Users/arungupta/testbed/grails-1.0.2 Base Directory: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld Note: No plugin scripts found Running script /Users/arungupta/testbed/grails-1.0.2/scripts/RunApp.groovy Environment set to development [mkdir] Created dir: /Users/arungupta/.grails/1.0.2/projects/helloworld/classes [groovyc] Compiling 6 source files to /Users/arungupta/.grails/1.0.2/projects/helloworld/classes [mkdir] Created dir: /Users/arungupta/.grails/1.0.2/projects/helloworld/resources/grails-app/i18n [native2ascii] Converting 10 files from /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/i18n to /Users/arungupta/.grails/1.0.2/projects/helloworld/resources/grails-app/i18n [copy] Copying 1 file to /Users/arungupta/.grails/1.0.2/projects/helloworld/classes [copy] Copying 1 file to /Users/arungupta/.grails/1.0.2/projects/helloworld/resources [copy] Copying 1 file to /Users/arungupta/.grails/1.0.2/projects/helloworld Running Grails application.. 2008-04-10 10:47:51.501::INFO: Logging to STDERR via org.mortbay.log.StdErrLog 2008-04-10 10:47:51.603::INFO: jetty-6.1.4 2008-04-10 10:47:51.755::INFO: No Transaction manager found - if your webapp requires one, please configure one. 2008-04-10 10:47:52.503:/helloworld:INFO: Set web app root system property: 'helloworld' = [/Users/arungupta/testbed/grails-1.0.2/samples/helloworld/web-app/] 2008-04-10 10:47:52.503:/helloworld:INFO: Initializing Log4J from [file:/Users/arungupta/.grails/1.0.2/projects/helloworld/resources/log4j.properties] 2008-04-10 10:47:52.582:/helloworld:INFO: Initializing Spring root WebApplicationContext [0] spring.GrailsWebApplicationContext Refreshing org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext@dccb42: display name [org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext@dccb42]; startup date [Thu Apr 10 10:47:53 PDT 2008]; parent: org.springframework.web.context.support.XmlWebApplicationContext@188af2 [0] spring.GrailsWebApplicationContext Bean factory for application context [org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext@dccb42]: org.springframework.beans.factory.support.DefaultListableBeanFactory@413ebc 2008-04-10 10:47:55.602:/helloworld:INFO: Initializing Spring FrameworkServlet 'grails' 2008-04-10 10:47:55.652::INFO: Started SelectChannelConnector@0.0.0.0:8080 Server running. Browse to http://localhost:8080/helloworld 2008-04-10 10:48:15.133:/helloworld:INFO: GSP servlet initialized |

| ~/testbed/grails-1.0.2/samples/helloworld
>grails war Welcome to Grails 1.0.2 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: /Users/arungupta/testbed/grails-1.0.2 Base Directory: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld Note: No plugin scripts found Running script /Users/arungupta/testbed/grails-1.0.2/scripts/War.groovy Environment set to production [delete] Deleting: /Users/arungupta/.grails/1.0.2/projects/helloworld/resources/web.xml [delete] Deleting directory /Users/arungupta/.grails/1.0.2/projects/helloworld/classes [delete] Deleting directory /Users/arungupta/.grails/1.0.2/projects/helloworld/resources [mkdir] Created dir: /Users/arungupta/.grails/1.0.2/projects/helloworld/classes [groovyc] Compiling 6 source files to /Users/arungupta/.grails/1.0.2/projects/helloworld/classes [mkdir] Created dir: /Users/arungupta/.grails/1.0.2/projects/helloworld/resources/grails-app/i18n [native2ascii] Converting 10 files from /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/i18n to /Users/arungupta/.grails/1.0.2/projects/helloworld/resources/grails-app/i18n [copy] Copying 1 file to /Users/arungupta/.grails/1.0.2/projects/helloworld/classes [copy] Copying 1 file to /Users/arungupta/.grails/1.0.2/projects/helloworld/resources [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging [copy] Copying 93 files to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging [copy] Copied 19 empty directories to 1 empty directory under /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging [copy] Copying 12 files to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging/WEB-INF/grails-app [copy] Copying 26 files to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging/WEB-INF/classes [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging/WEB-INF/spring [copy] Copying 1 file to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging/WEB-INF/classes [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging/WEB-INF/templates/scaffolding [copy] Copying 6 files to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging/WEB-INF/templates/scaffolding [copy] Copying 49 files to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging/WEB-INF/lib [copy] Copying 1 file to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging/WEB-INF [delete] Deleting: /Users/arungupta/.grails/1.0.2/projects/helloworld/resources/web.xml [copy] Warning: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/plugins not found. [propertyfile] Updating property file: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging/WEB-INF/classes/application.properties [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging/WEB-INF/plugins [copy] Warning: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/plugins not found. [jar] Building jar: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/helloworld-0.1.war [delete] Deleting directory /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/staging Done creating WAR /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/helloworld-0.1.war |
| ~/testbed/glassfish/v3/p2-b08/glassfish
>bin/startserv
--verbose Apr 10, 2008 11:03:28 AM com.sun.enterprise.admin.launcher.GFLauncherLogger info INFO: JVM invocation command line: /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/bin/java -cp /Users/arungupta/testbed/glassfish/v3/p2-b08/glassfish/modules/glassfish-10.0-SNAPSHOT.jar . . . INFO: Listening on port 8080 Apr 10, 2008 11:03:29 AM com.sun.enterprise.v3.services.impl.GrizzlyEmbeddedHttpConfigurator configureSSL WARNING: HTTP listener on port: 8181 is secured, but SSL configuration is not found! Apr 10, 2008 11:03:29 AM com.sun.enterprise.v3.services.impl.GrizzlyProxy start INFO: Listening on port 8181 Apr 10, 2008 11:03:29 AM com.sun.enterprise.v3.services.impl.GrizzlyProxy start INFO: Listening on port 4848 Apr 10, 2008 11:03:29 AM com.sun.enterprise.v3.admin.adapter.AdminConsoleAdapter setContextRoot INFO: Admin Console Adapter: context root: /admin Apr 10, 2008 11:03:29 AM com.sun.enterprise.v3.server.AppServerStartup run INFO: com.sun.enterprise.v3.services.impl.GrizzlyService@b24c9a startup done in 681 ms Apr 10, 2008 11:03:29 AM com.sun.enterprise.v3.services.impl.ApplicationLoaderService postConstruct INFO: loader service postConstruct started at 1207850609785 Apr 10, 2008 11:03:29 AM com.sun.enterprise.v3.server.AppServerStartup run INFO: Application Loader startup done in 717 ms Apr 10, 2008 11:03:29 AM com.sun.enterprise.v3.server.AppServerStartup run INFO: Glassfish v3 started in 717 ms Apr 10, 2008 11:03:29 AM com.sun.enterprise.v3.admin.adapter.AdminConsoleAdapter ready INFO: AdminConsoleAdapter is ready ... |
| ~/testbed/grails-1.0.2/samples/helloworld
>~/testbed/glassfish/v3/p2-b08/glassfish/bin/asadmin
deploy helloworld-0.1.war helloworld-0.1 deployed successfully properties=(name=helloworld-0.1) Command deploy executed successfully. |

| C~/testbed/grails-1.0.2/samples/helloworld
>grails
create-controller hello Welcome to Grails 1.0.2 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: /Users/arungupta/testbed/grails-1.0.2 Base Directory: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld Note: No plugin scripts found Running script /Users/arungupta/testbed/grails-1.0.2/scripts/CreateController.groovy Environment set to development [copy] Copying 1 file to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/controllers Created Controller for Hello [mkdir] Created dir: /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/grails-app/views/hello [copy] Copying 1 file to /Users/arungupta/testbed/grails-1.0.2/samples/helloworld/test/integration Created ControllerTests for Hello |
| ~/testbed/grails-1.0.2/samples/helloworld
>vi
grails-app/controllers/HelloController.groovy class HelloController { def world = { render "Hello World!" } //def index = { } } |



Posted by Arun Gupta in web2.0 | Comments[3]
|
|
|
|
|
Today's Page Hits: 3837
Total # blog entries: 1002