June 18, 2009

TOTD #85: Getting Started with Django Applications on GlassFish v3

Categories: django, totd

GlassFish v3 is an extensible App server. Basically the core App server functionality can be easily extended using add-ons such as an OSGi module. This allows to keep the core light-weight and install the required features on demand. The add-ons can be easily installed using the Update Center. The what/why/how about extensibility is described in the GlassFish v3 Extensibility One-pager.

GlassFish v3 provides support for Dynamic Languages and Web Frameworks such as Ruby-on-Rails, Groovy/Grails, and Python/Django using this extensibility. This blog has published multiple tips on using Ruby-on-Rails at rubyonrails+totd and a few tips on Groovy/Grails at grails+totd. This blog will explain how to get started with deploying Python/Django applications on GlassFish v3 Preview. The blog will use Jython interpreter which is the Java implemention of Python.

Vivek already blogged about the detailed instructions and this blog shows how to run the pre-bundled samples.

  1. Download GlassFish v3 Preview.
  2. Install Jython 2.5
    1. Download Jython 2.5 from here. 
    2. Install as:
      java -jar ~/Downloads/jython_installer-2.5.0.jar

      Choose the default options (pick your directory) as shown below:

      and click on “Next” to start the installation process.

    3. As mentioned in Django on Jython wiki, create the following aliases:
      alias jython25=~/tools/jython2.5.0/bin/jython
      alias django-admin-jy=”jython25 ~/tools/jython2.5.0/bin/django-admin.py”

    4. Invoking the command “jython25″ from the installation directory shows the Jython interpreter as:
      ~/tools/jython/jython2.5rc4 >jython25
      Jython 2.5rc4 (Release_2_5rc4:6470, Jun 8 2009, 13:23:16)
      [Java HotSpot(TM) 64-Bit Server VM (Apple Inc.)] on java1.6.0_13
      Type “help”, “copyright”, “credits” or “license” for more information.

  3. Install Django
    1. Download Django 1.0.2 from here.
    2. Install Django 1.0.2 as:
      ~/tools >tar xzvf ~/Downloads/Django-1.0.2-final.tar.gz
      . . .
      ~/tools/Django-1.0.2-final >jython25 setup.py install
      running install
      running build
      running build_py
      . . .
      running install_egg_info
      Writing /Users/arungupta/tools/jython/jython2.5.0/Lib/site-packages/Django-1.0.2_final-py2.5.egg-info

  4. Install Jython container for GlassFish
    1. Start GlassFish v3 Preview Update Center using the following command:

      ~/tools/glassfish/v3/preview/glassfishv3/bin >./updatetool 

      to see the screen as:

    2. Select “GlassFish v3 Jython Container” and click on “Install”, “Accept” the license and complete the installation. Close the Update Center window. This installs Jython Container OSGi module and Grizzly Adapter JARs in the “glassfish/modules” directory.
  5. Start and configure GlassFish
    1. Start GlassFish as:

      ~/tools/glassfish/v3/preview/glassfishv3/glassfish >./bin/asadmin start-domain

    2. Configure Jython in GlassFish as:
      ~/tools/glassfish/v3/preview/glassfishv3/glassfish >./bin/asadmin create-jvm-options -Djython.home=/Users/arungupta/tools/jython2.5.0
      created 1 option(s)

      Command create-jvm-options executed successfully.

      Make sure to specify the directory where Jython is installed.

  6. Deploy the samples bundled with the Django installation as:
    ~/tools/Django-1.0.2-final/examples >~/tools/glassfish/v3/preview/glassfishv3/glassfish/bin/asadmin deploy .

    Command deploy executed successfully.

    and now they are accessible at “http://localhost:8080/examples/” and shown as:

    Make sure to specify the end “/” otherwise the context root is not resolved correctly and none of the links will work.

    Click on “Hello World (HTML)” to see the output as:

    And click on “Displaying request metadata” to see output as:

    alt="" src="/wp-content/uploads/2009/08/django102-samples-metadata.png">

    The same sample can, of course, run using the built-in development server as:

    ~/tools/Django-1.0.2-final/examples >jython25 manage.py runserver
    Validating models…
    0 errors found

    Django version 1.0.2 final, using settings ‘examples.settings’
    Development server is running at
    Quit the server with CONTROL-C.

    and then accessible at “http://localhost:8000″ as:

More details are available in Django Tutorial. The subsequent blogs will provide more detailed samples.

If you are using GlassFish v2 then Django applications can be deployed as a WAR file as explained here.

Please leave suggestions on other TOTD (Tip Of The Day) that you’d like to see. A complete archive of all the tips is available here.

Technorati: totd glassfish v3 django python

Share and Enjoy:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • E-mail this story to a friend!
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot
Related posts:
  1. TOTD #100: Getting Started with Scala Lift on GlassFish v3
  2. TOTD #79: Getting Started with Sinatra applications on JRuby and GlassFish Gem
  3. TOTD #93: Getting Started with Java EE 6 using NetBeans 6.8 M1 & GlassFish v3 – A simple Servlet 3.0 + JPA 2.0 app
  4. TOTD #75: Getting Started with Grails using GlassFish v3 Embedded
  5. TOTD# 86: Getting Started with Apache Wicket on GlassFish


  1. thanks..

    Comment by komik oyunlar — June 19, 2009 @ 4:13 am

  2. Thank you for the information provided.

    Comment by Diş Sağlığı — June 19, 2009 @ 10:50 am

  3. Thank you for the information provided…

    Comment by Sİnema — June 19, 2009 @ 10:51 am

  4. [...] applications can run inside any Java application server. GlassFish v3 can run Rails and Django applications natively and can also run Wicket applications. This Tip Of The Day (TOTD) explains how [...]

    Pingback by TOTD #100: Getting Started with Scala Lift on GlassFish v3 « Miles to go … — September 3, 2009 @ 4:06 am

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress