dynamic languages & web frameworks in glassfish
DESCRIPTION
“Dynamic languages such as JRuby, Groovy, and Jython are increasingly playing an important role in the web these days. The associated frameworks such as Rails, Grails, and Django are gaining importance because of the agility provided by them. The GlassFish project provides an easy-to-use and robust development and deployment platform for hosting these web applications. It also enables the various languages to leverage the investment in your existing Java Platform, Enterprise Edition (Java EE platform) infrastructure. This session gives an overview of various Dynamic Languages and associated Web frameworks that can be used on the GlassFish project. It starts with a brief introduction to JRuby and details on how the GlassFish project provides a robust development and deployment platform for Rails, Merb, Sinatra and other similar applications without pain. As a basis for further discussion, this presentation shows the complete lifycycle for JRuby-on-Rails applications on GlassFish v2 and v3. It discusses the various development options provided by GlassFish v3, demonstrates how popular Rails applications can be easily deployed on GlassFish without any modification, and shows how v3 Gem can be used as an effective alternative to WEBrick and Mongrel. It also demonstrates debugging of Rails applications using NetBeans IDE. For enterprise users, it shows how JMX and other mechanisms can be used to monitor Rails applications. It also talks in detail about the Groovy/Grails and Python/Django development and deployment models in context of GlassFish v3. By following the simple deployment steps the presentation shows, developers will be able to deploy their existing web applications on the GlassFish project.The session also describes the known limitations and workarounds for each of them. The talk will show a working sample created in different frameworks and deployed on GlassFish v3. The demo will show how different features of the underlying GlassFish runtime are easily accessible to the frameworks running on top of it.”TRANSCRIPT
![Page 1: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/1.jpg)
Dynamic Languages & Web Frameworks in GlassFish v3
Arun Gupta (blogs.sun.com/arungupta, @arungupta)
Sun Microsystems, Inc.
![Page 2: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/2.jpg)
What is a Dynamic Language ? Broadly a language that allows a program to change its
own code at runtime− Evaluate data as code ("The name is: #{@name}" )− Manipulate code as data ({"name"=>"Duke"}.each {|data| puts data})− High order functions− Dynamic Typing− Closures, Continuations, Macros, ...
Simple, human-readable syntax List, Ruby, Python, Groovy, ...
![Page 3: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/3.jpg)
Web Frameworks Full-stack
− Object relational mapping− MVC-pattern− Templating− JavaScript library− Extension points
Agile Development− No compile, redeploy, restart cycles− Testing built into the framework
![Page 4: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/4.jpg)
Design Principles Convention over Configuration (CoC)
− Common cases easily served− Encourages standard practices− Everything simpler and smaller
Don't Repeat Yourself (DRY)− Framework written around minimizing repetition
![Page 5: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/5.jpg)
What is GlassFish ? A community
− Users, Partners, Testers, Developers, ...− Started in 2005 on java.net
Application Server− Enterprise Quality and Open Source− Java EE Reference Implementation− Full Commercial Support from Sun
![Page 6: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/6.jpg)
6
Sun GlassFish Enterprise Server
GlassFishGlassFishOpen SourceOpen SourceApplication ServerApplication Server
Customer FocusedCustomer FocusedSupport TeamSupport Team
Patches &Patches &UpgradesUpgrades
24x7 Support24x7 Support
CustomerCustomerAdvocateAdvocate
Sun VIPSun VIPInteroperabilityInteroperabilitySupportSupport
Enterprise ManagerEnterprise Manager
eLearningeLearningCreditCredit
![Page 7: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/7.jpg)
7
GlassFish v3 Modular:
− Maven 2 – Build & Module description− Felix – OSGi runtime (216 bundles)− Allow any type of Container to be plugged
Start Container and Services on demand Embeddable: runs in-VM Extensible
− Rails, Grails, Django, ...
![Page 8: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/8.jpg)
8
GlassFish v3 Architecture
GlassFish Kernel
SecurityRailsGrails
Web
Config
InjectionNaming
Grizzly
Bundles Repositories
HK2 Services
OSGi Runtimerequests
services
![Page 9: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/9.jpg)
9
Dynamic Languages & Frameworks
http://glassfish-scripting.dev.java.net
![Page 10: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/10.jpg)
Ruby interpreter written in Java Current Version: 1.4.0 Ruby 1.8.6 compatible Some Ruby 1.9 support
− --1.9 flag− 80% of 1.9.1
9 Active committers
What is ?
http://jruby.kenai.com/presentations/JRubyConf%2009%20Keynote.pdf
![Page 11: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/11.jpg)
Compatibility ~37,000 passing rubyspecs ~22,000 passing assertions Continuous Integration
− On commit ~3 Java versions * 4 vendors− Nightly: 30 minute “full” run
![Page 12: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/12.jpg)
Solid performance ( �Ruby 1.9)− Startup is poor, execution usually better than 1.9
Runs native threads Foreign Function Interface (FFI) for C
libraries Runs Rails great!
![Page 13: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/13.jpg)
Full-stack Web development MVC framework in Ruby
Current Version: Rails 2.3.4 Getting Started
− Install Rails: “jruby -S gem install rails”− Generate Rails app: “jruby -S rails helloworld”
What is ?
![Page 14: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/14.jpg)
14
Rails Deployment Choices
Credits: http://birdwatchersdigest.com
![Page 15: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/15.jpg)
15
Directory-based Deployment: How ?
jruby -S rails helloworld
asadmin start-domainasadmin create-jvm-options -DJRUBY_HOME=...asadmin deploy railsconf
![Page 16: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/16.jpg)
16
Directory-based: Capistrano Recipes
http://wiki.glassfish.java.net/Wiki.jsp?page=DeployUsingCapsitrano
![Page 17: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/17.jpg)
17
Rails Development using NetBeans 6.8
http://blogs.sun.com/arungupta/entry/screencast_26_develop_run_debug
![Page 18: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/18.jpg)
18
Rails Deployment: GlassFish Gem
![Page 19: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/19.jpg)
19
GlassFish Gem: How ?
jruby -S rails helloworld
jruby -S gem install glassfishcd helloworldjruby -S glassfish
![Page 20: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/20.jpg)
20
Single Threaded Rails < v 2.2
![Page 21: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/21.jpg)
21
Multi Threaded Rails or Merb or ...
![Page 22: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/22.jpg)
22
GlassFish Gem: Capistrano Recipes
http://wiki.glassfish.java.net/Wiki.jsp?page=DeployUsingCapsitrano
![Page 23: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/23.jpg)
23
GlassFish Gem Optionsjruby -S glassfish -h
-n: Number of JRuby runtimes to create initially--runtimes-min: Minimum runtimes--runtimes-max: Maximum runtimes-c: change the context root-e: environment-d: Runs as daemon-P: location of PID file-l: log file location-log-level: Logging level (0-7)
![Page 24: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/24.jpg)
24
DemoGlassFish Gem
http://blogs.sun.com/arungupta/entry/totd_76_jruby_1_2
![Page 25: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/25.jpg)
25
GlassFish Gem in Production
Easy, green deployment−Reverse proxy not required−JRuby runtime pool provides required scaling
Rails is single threaded by default
−MT frameworks scales automaticallyJRuby and JVM support native threads
Configuration using “glassfish.yml”
![Page 26: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/26.jpg)
26
Optional front-ending
http://blogs.sun.com/arungupta/entry/totd_81_how_to_usehttp://blogs.sun.com/arungupta/entry/totd_84_using_apache_mod
![Page 27: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/27.jpg)
27
Rails Deployment: WAR-based
![Page 28: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/28.jpg)
28
WAR-based: How ?
jruby -S gem install warblercd helloworld jruby warble config Edit “config/warble.rb” Include gems, Change RAILS_ENVjruby warbleasadmin deploy helloworld.war
jruby -S rails helloworld
![Page 29: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/29.jpg)
WAR Deployment: Packaging
![Page 30: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/30.jpg)
30
DemoWAR-based Deployment
http://blogs.sun.com/arungupta/entry/totd_73_jruby_and_glassfish
![Page 31: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/31.jpg)
JRuby Module on GlassFish Update Center
![Page 32: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/32.jpg)
32
Ruby Rack Support A Ruby Web server interface Plugin any Rack compliant framework
− Rails, Merb, Sinatra, Ramaze, Campsite, ... Rack support in GlassFish
− GlassFish Gem Plugin any Rack metal (such as RackCache)
− GlassFish v2 & v3 through Warbler Use your own framework
− Rackup script− jruby.applicationType property
![Page 33: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/33.jpg)
33
Ruby Application Auto-detection
![Page 34: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/34.jpg)
34
Performance Need JVM tuning for production
−Use Server profile where possible (-server) GC settings
− -XX:+DisableExplicitGC, -XX:NewRatio=2
Memory settings −Use large settings for -Xmx -Xms and -XX:MaxPermSize
−Use at least 20 MB perm gen space for each JRuby runtime
![Page 35: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/35.jpg)
35
Scaling Rails is single-threaded by default Setup JRuby runtime pool
−With gem glassfish -n 3 –runtime-min 2 –runtime-max 4
2 HTTP Worker Threads per runtime Turn on file caching
− network-config>protocols>protocol>http>file-cache#enabled
MT frameworks (Rails > 2.2, Merb) −No configuration needed
![Page 36: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/36.jpg)
Rails Monitoring Basic Monitoring
− jinfo: System properties and VM CLI flags− jmap: Shared object memory map− jstack: Stack traces of Java threads− jstat: Performance stats on class, JIT compiler, GC
Advanced− jconsole / Visual VM− NewRelic, FiveRuns, ...
![Page 37: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/37.jpg)
Rails Monitoring in GlassFish v3 asadmin enable-monitoring –level jruby-
container=HIGH asadmin list –monitor=true “*” asadmin list –monitor=true “*jruby*” asadmin list-probes | grep jruby dtrace or JavScript-based monitoring
http://blogs.sun.com/arungupta/entry/totd_104_glassfish_v3_monitoring
![Page 38: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/38.jpg)
Endorsements
Look like the best deploying option I ever found for Rails, GREAT!
the easiest rails stack in the world, jruby 1.2rc, rails
2.3rc, glassfish v3...
too easy to run jruby/rack/glassfish behind nginx
leading the way to simple, scalable, no-hassle hosting for
Ruby web applications....
it's true one-step deployment.
had no reliability and performance issues
with Glassfish money is on JRuby (and Glassfish) for the long
haul; if you haven't checked out Glassfish
yet, you're doing yourself a disservice!
nice way to deploy and manage my app while
leaving things open for scaling
![Page 39: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/39.jpg)
Who loves Rails on GlassFish ?
![Page 40: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/40.jpg)
![Page 41: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/41.jpg)
What is ? Agile dynamic language for the JVM Seamlessly integrates with all existing Java
objects & libraries− Compiles straight to bytecode
Current version: 1.6.7 groovy -e "println 'Hello ' + args[0]" World
![Page 42: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/42.jpg)
What is ? MVC Web framework for the Java platform
− Persistence framework (Hibernate)− Templating using GSP (Groovy Server Pages)− Tag libraries to create web page components− Good Ajax support− Web server & automatic resources reload
Current Version: 1.1.2, 1.2 RC1 released 12/5
![Page 43: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/43.jpg)
Grails “Hello World”● Create app: “grails create-app bookstore”
● Create domain class: “grails create-domain-class book”
● Edit “grails-app/domain/Book.groovy” and add attributes
● Create controller: “grails create-controller Book”● Edit “grails-app/controllers/BookController.groovy”● Add scaffold: “def scaffold = Book”
● Run app: “grails run-app”
![Page 44: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/44.jpg)
Grails on GlassFish App Server● Create WAR: “grails war”● Deploy: “asadmin deploy helloworld-0.1.war”
![Page 45: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/45.jpg)
45
DemoGrails & GlassFish
http://blogs.sun.com/arungupta/entry/getting_started_with_grails_onhttp://blogs.sun.com/arungupta/entry/totd_75_getting_started_withhttp://blogs.sun.com/arungupta/entry/grails_on_glassfish_v3_embeddedhttp://blogs.sun.com/arungupta/entry/tic_tac_toe_using_rails
![Page 46: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/46.jpg)
Grails Module onGlassFish Update Center
![Page 47: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/47.jpg)
47
Efficient Deployment
Grails Application WAR−Large
Over 48 Grails dependent JARs~20MB for a simple app
−Expensive to bundle in single WAR−Issues when hot deployment is required
![Page 48: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/48.jpg)
48
GlassFish proposes light-weight WARDon't package dependencies! Smaller WAR file: ~200KB vs ~20MB GlassFish knows how to find dependencies Only one copy of dependencies in GlassFish
−Less memory consumption and deployment speed-up
$ grails shared-war
With Grails 1.1 use –nojars option
$ asadmin deploy helloworld-0.1.war
![Page 49: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/49.jpg)
49
GlassFish/Grails: Coming up ... Use “grails –nojars”
− JIRA-5174, JIRA-5175 “grails install-plugin glassfish –global”
− grails run-app “asadmin deploy grailsApp”
![Page 50: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/50.jpg)
50
![Page 51: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/51.jpg)
51
What is ?Implementation of Python in Java
−Seamless integration of Python and Java−Java <==> Python−Just Python−Dynamic compilation to Java bytecodes
Jython 2.5.1 released (Sep 2009)Works with Django 1.0
![Page 52: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/52.jpg)
52
What is ? MVC-based framework written in Python
− Object-relational mapper− A lightweight, standalone Web server− A regular expression based URL dispatcher− A templating system− A caching framework− An internationalization system− . . .
![Page 53: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/53.jpg)
53
GlassFish DeploymentDeploy as WAR
−ModjyServlet, ServletContextListener + WSGI ImplementationIntegrated with Jython 2.5
Pure Django Deployment−Grizzly + WSGI => Django−No WAR, no packaging−asadmin deploy myDjangoApp
![Page 54: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/54.jpg)
54
How does it work ?
Download Jython Install Django (jython25 setup.py install) GlassFish v3 Jython OSGi module from UC asadmin create-jvm-options -Djython.home=... cd DjangoApp asadmin deploy .
![Page 55: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/55.jpg)
Jython Module onGlassFish Update Center
![Page 56: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/56.jpg)
56
DemoDjango & GlassFish
http://blogs.sun.com/arungupta/entry/totd_85_getting_started_with
![Page 57: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/57.jpg)
57http://blogs.sun.com/arungupta/entry/tic_tac_toe_using_rails
![Page 58: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/58.jpg)
58
Java EE & Dynamic LanguagesJavaEE is a mature and robust platform
−Servlet, EJB, JMS, JAX-RS, JAX-WS...Hybrid Rails and Servlet/JSP application
−Forward to and from Rails to Servlet/JSP−HTTPSession as Rails session−ServletRequest/Response API available to Rails
JDBC connection poolJMS: Async messaging in Rails
![Page 59: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/59.jpg)
59
Servlet 3.0 Pluggability
JavaEE 6 and Dynamic Languages− No boilerplate web.xml− Dynamically add ServletFilter and ServletContextListener
Simple packaging−No need to package as WAR, No Warbler−Place application inside WEB-INF directory
![Page 60: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/60.jpg)
References glassfish.org glassfish-scripting.dev.java.net sun.com/glassfish blogs.sun.com/theaquarium twitter.com/glassfish [email protected]
![Page 61: Dynamic Languages & Web Frameworks in GlassFish](https://reader033.vdocuments.net/reader033/viewer/2022052823/5556866ed8b42a182f8b4929/html5/thumbnails/61.jpg)
Dynamic Languages & Web Frameworks in GlassFish v3
Arun Gupta (blogs.sun.com/arungupta, @arungupta)
Sun Microsystems, Inc.