Miles to go …

June 30, 2008

Substruct on GlassFish v3 – Ruby-on-Rails E-Commerce Application

Filed under: web2.0 — arungupta @ 5:00 am


Substruct is an open-source E-Commerce project written using Ruby-on-Rails framework. It provides a simple e-commerce platform, content management system and customer response system – all in one.

I found out about this application from Sang “Passion” Shin’s Lab 5542 (part of FREE 20-week course on Ruby-on-Rails starting on Jul 15, 2008). But instead of using standard WEBrick/Mongrel deployment, I describe the steps to deploy this application using GlassFish v3 Gem. The GlassFish Gem installation is described here.

  1. Download and install Substruct

    ~/samples/jruby >gunzip -c substruct_rel_1-0-a3.tar.gz  | tar xvf -
    substruct_rel_1-0-a3/
    substruct_rel_1-0-a3/app/
    substruct_rel_1-0-a3/app/controllers/
    substruct_rel_1-0-a3/app/controllers/application.rb
    . . .
    substruct_rel_1-0-a3/vendor/rails/railties/test/rails_info_test.rb
    substruct_rel_1-0-a3/vendor/rails/railties/test/secret_key_generation_test.rb
    substruct_rel_1-0-a3/vendor/rails/Rakefile
    substruct_rel_1-0-a3/vendor/rails/release.rb
  2. Install the required gems for Substruct
    ~/samples/jruby >~/testbed/jruby-1.1.2/bin/jruby -S gem install RedCloth fastercsv mime-types mini_magick ezcrypto jruby-openssl –no-ri –no-rdoc
    JRuby limited openssl loaded. gem install jruby-openssl for full support.
    http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
    Bulk updating Gem source index for: http://gems.rubyforge.org/
    Successfully installed RedCloth-3.0.4
    Successfully installed fastercsv-1.2.3
    Successfully installed mime-types-1.15
    Successfully installed rubyforge-1.0.0
    Successfully installed hoe-1.5.3
    Successfully installed mini_magick-1.2.3
    Successfully installed ezcrypto-0.7
    Successfully installed jruby-openssl-0.2.3
    8 gems installed
  3. Create the database
    ~/samples/jruby/substruct_rel_1-0-a3 >~/testbed/jruby-1.1.2/bin/jruby -S rake db:create
    (in /Users/arungupta/samples/jruby/substruct_rel_1-0-a3)
    [SUBSTRUCT WARNING]
    Mail server settings have not been initialized.
    Check to make sure they’ve been set in the admin panel.
  4. And bootstrap it as
    ~/samples/jruby/substruct_rel_1-0-a3 >~/tesbted/jruby-1.1.2/bin/jruby -S rake substruct:db:bootstrap
    (in /Users/arungupta/samples/jruby/substruct_rel_1-0-a3)
    Checking requirements…
    Initializing database…
    [SUBSTRUCT WARNING]
    Mail server settings have not been initialized.
    Check to make sure they’ve been set in the admin panel.
    — create_table(“content_nodes”, {:force=>true})
       -> 0.3020s
    — add_index(“content_nodes”, ["name"], {:name=>”name”})
       -> 0.0140s
    — add_index(“content_nodes”, ["type", "id"], {:name=>”type”})
    . . .
    — initialize_schema_information()
       -> 0.0200s
    — columns(“schema_info”)
       -> 0.0650s
    Clearing previous data…
    Removing all sessions…
    Loading default data…
    …done.
    ================================================================================

    Thanks for trying Substruct 1.0.a3

    Now you can start the application with ’script/server’
    visit: http://localhost:3000/admin, and log in with admin / admin.

    For help, visit the following:
      Official Substruct Sites
        – http://substruct.subimage.com
        – http://code.google.com/p/substruct/
      Substruct Google Group – http://groups.google.com/group/substruct

    – Subimage LLC – http://www.subimage.com

  5. And finally run it on the GlassFish as:
    ~/samples/jruby >~/testbed/jruby-1.1.2/bin/jruby -S glassfish_rails substruct_rel_1-0-a3
    May 28, 2008 1:47:46 PM com.sun.enterprise.glassfish.bootstrap.ASMain main
    INFO: Launching GlassFish on HK2 platform
    May 28, 2008 1:47:46 PM com.sun.enterprise.glassfish.bootstrap.ASMainHK2 findDerbyClient
    INFO: Cannot find javadb client jar file, jdbc driver not available
    May 28, 2008 1:47:47 PM com.sun.enterprise.v3.services.impl.GrizzlyProxy start
    INFO: Listening on port 3000
    May 28, 2008 1:47:47 PM com.sun.enterprise.v3.services.impl.GrizzlyEmbeddedHttpConfigurator configureSSL
    WARNING: pewebcontainer.all_ssl_protocols_disabled
    May 28, 2008 1:47:47 PM com.sun.enterprise.v3.services.impl.GrizzlyEmbeddedHttpConfigurator configureSSL
    WARNING: pewebcontainer.all_ssl_ciphers_disabled
    May 28, 2008 1:47:47 PM com.sun.enterprise.v3.services.impl.GrizzlyProxy start
    INFO: Listening on port 3131
    May 28, 2008 1:47:47 PM com.sun.enterprise.v3.services.impl.GrizzlyProxy start
    INFO: Listening on port 3838
    May 28, 2008 1:47:48 PM com.sun.enterprise.v3.admin.adapter.AdminConsoleAdapter setContextRoot
    INFO: Admin Console Adapter: context root: /admin
    May 28, 2008 1:47:48 PM com.sun.enterprise.rails.RailsDeployer registerAdapter
    INFO: Loading application substruct_rel_1-0-a3 at /
    May 28, 2008 1:47:48 PM 
    INFO: Starting Rails instances
    May 28, 2008 1:47:56 PM com.sun.grizzly.jruby.RubyObjectPool$1 run
    INFO: Rails instance instantiation took : 8800ms
    May 28, 2008 1:47:56 PM com.sun.enterprise.v3.server.AppServerStartup run
    INFO: Glassfish v3 started in 10403 ms

The welcome screenshot looks like

Now copy GlassFish logo image file to “public/images” directory of your application and add the following line to “app/views/layouts/main.rhtml” file (
on line 36):

<a href=”http://glassfish.org”><%= image_tag(‘/images/glassfish-logo.gif’, :alt => ‘GlassFish’) %></a>

The modified view looks like as shown below:

The updated output looks like:

I tried only the basic deployment and that seem to work. If you try slightly more advanced usecases then the functionality provided by RedCloth, fastercsv, mime-types, mini_magick and ezcrypto gems can be exercised as well. If you are running Substruct, try it and .

If your Rails application does not work on the gem, file bugs here with “jruby” as “subcomponent” (default version is “v3″).

Also check out Redmine on GlassFish v3.

Technorati: rubyonrails glassfish netbeans substruct webtier

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot
Related posts:
  1. TOTD #104: Popular Ruby-on-Rails applications on GlassFish v3 – Redmine, Typo, Substruct
  2. Redmine on GlassFish – Ruby-on-Rails Project Management Application
  3. TOTD #37: SQLite3 with Ruby-on-Rails on GlassFish Gem
  4. TOTD# 36: Writing First Test for a Rails Application
  5. TOTD #24: Getting Started with Rails 2.0.x in JRuby 1.0.3 and JRuby 1.1RC1

4 Comments »

  1. [Trackback] Typo is an open-source Blogging Engine written using Ruby-on-Rails framework. It provides a lean engine that makes blogging easy. It’s main attribtues are ease of use, usability, beauty and excellent support of web standards. I found out about this…

    Comment by Arun Gupta's Blog — August 28, 2008 @ 5:50 am

  2. [Trackback] Typo is an open-source Blogging Engine written using Ruby-on-Rails framework. It provides a lean engine that makes blogging easy. It’s main attribtues are ease of use, usability, beauty and excellent support of web standards. I found out about this…

    Comment by Arun Gupta's Blog — August 28, 2008 @ 5:57 am

  3. [Trackback] GlassFish Gem 0.9.0 was recently released. It can run any Rack-compatible framework such as Rails and Merb. Support for another Rack-based framework&nbsp;Sinatra will be released in the near future. The gem is even extensible and allows to plug any of…

    Comment by Arun Gupta's Blog — November 14, 2008 @ 9:36 am

  4. [...] Substruct on GlassFish – Substruct is an open source E-Commerce project in Ruby-on-Rails. The simplified steps to deploy Substruct on GlassFish v3 are given below (also on GlassFish v3 Gem): [...]

    Pingback by Popular Ruby-on-Rails applications on GlassFish v3 – Redmine, Typo, Substruct « Miles to go … — September 17, 2009 @ 11:18 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress