Monday August 13, 2007
Sun's "dramatically improved" app server
Here are some quotes from a recent report by Forrester Wave on the "Application Server Platforms"
Among major vendors, Sun Microsystems Inc., has dramatically improved its standing in this year's evaluation of applications servers for service-oriented architecture (SOA) and business process management (BPM) by Forrester Research Inc.
Sun trailed the field in Forrester's 2004 evaluation of application server platforms but emerged as a "strong performer" in this year's evaluation.
Sun's platform grew substantially with its acquisition of SeeBeyond, and the company has spent about a year integrating those products with its Java Enterprise System (ES) modules. The SeeBeyond products, now called the Sun Java Composite Application Platform Suite (CAPS), provide very strong SOA, integration, and business process management (BPM) features relative to the competition.
The analyst firm rate Sun Web server and directory server on a par with what IBM and BEA offer in those categories.
The full report costs $379 but excerpts are available here.
If you want to download any of the above mentioned platforms, they are available at:
GlassFish V2 will be released final in the next few weeks. And the associated product, Sun Java System Application Server 9.1, will be released along with it as well.
Technorati: glassfish javacaps forrester
Posted by Arun Gupta in webservices | Comments[0]
|
|
|
|
| First JRuby on Rails App in GlassFish V3
In a previous screencast, I showed how a Rails application can be deployed as WAR file on GlassFish V2. In GlassFish V3, the Grizzly connector by-passes the need to bundle a Rails application as WAR. Instead it directly invokes JRuby interpreter and deploys a Rails application without any modification.
This blog entry describes the exact steps to deploy your first JRuby application in GlassFish V3 Technology Preview builds.
c:\jruby-bin-1.0' (lets say JRUBY_HOME).JRUBY_HOME\bin" in your environment PATH.jruby -S gem install rails -y --no-rdocbin" directory. The output of the command looks like:C:\jruby-bin-1.0>gem install rails -y --no-rdoc Bulk updating Gem source index for: http://gems.rubyforge.org Successfully installed rails-1.2.3 Successfully installed activesupport-1.4.2 Successfully installed activerecord-1.15.3 Successfully installed actionpack-1.13.3 Successfully installed actionmailer-1.3.3 Successfully installed actionwebservice-1.2.3 Installing ri documentation for activesupport-1.4.2... Installing ri documentation for activerecord-1.15.3... Installing ri documentation for actionpack-1.13.3... While generating documentation for actionpack-1.13.3 ... MESSAGE: java.lang.ArrayIndexOutOfBoundsException: null ... RDOC args: --ri --op C://jruby-bin-1.0/lib/ruby/gems/1.8/doc/actionpack-1.13.3/ri --quiet lib (continuing with the rest of the installation) Installing ri documentation for actionmailer-1.3.3... Installing ri documentation for actionwebservice-1.2.3...
java -jar glassfish-installer-v3-preview1-b2.jarThis will create a new directory by the name "
glassfish" in your
current directory.GLASSFISH_HOME\bin" in your environment PATH.config\asenv.bat" and add "set JRUBY_HOME=C:\jruby-bin-1.0"
as the last line. Make sure to change the directory location to match your
JRUBY_HOME.jruby -S rails helloThis creates a new directory "hello" in your current directory. The output of the command looks like:
create create app/controllers create app/helpers create app/models create app/views/layouts create config/environments create components create db create doc create lib create lib/tasks create log create public/images create public/javascripts create public/stylesheets create script/performance create script/process create test/fixtures create test/functional create test/integration create test/mocks/development create test/mocks/test create test/unit create vendor create vendor/plugins create tmp/sessions create tmp/sockets create tmp/cache create tmp/pids create Rakefile create README create app/controllers/application.rb create app/helpers/application_helper.rb create test/test_helper.rb create config/database.yml create config/routes.rb create public/.htaccess create config/boot.rb create config/environment.rb create config/environments/production.rb create config/environments/development.rb create config/environments/test.rb create script/about create script/breakpointer create script/console create script/destroy create script/generate create script/performance/benchmarker create script/performance/profiler create script/process/reaper create script/process/spawner create script/process/inspector create script/runner create script/server create script/plugin create public/dispatch.rb create public/dispatch.cgi create public/dispatch.fcgi create public/404.html create public/500.html create public/index.html create public/favicon.ico create public/robots.txt create public/images/rails.png create public/javascripts/prototype.js create public/javascripts/effects.js create public/javascripts/dragdrop.js create public/javascripts/controls.js create public/javascripts/application.js create doc/README_FOR_APP create log/server.log create log/production.log create log/development.log create log/test.log
jruby script/generate controller say helloThe output of the command looks like:
exists app/controllers/ exists app/helpers/ create app/views/say exists test/functional/ create app/controllers/say_controller.rb create test/functional/say_controller_test.rb create app/helpers/say_helper.rb create app/views/say/hello.rhtml
hello\app\views\say directory, edit "hello.rhtml" such that it looks like:<h1>Say#hello</h1> <p>Find me in app/views/say/hello.rhtml</p> <%= @hello_string %>
hello\app\controllers directory, edit "say_controller.rb"
such that it looks like:class SayController < ApplicationController def hello @hello_string = "Hello from Controller!" end end
java -jar lib\glassfish-10.0-SNAPSHOT.jarThe output of the command looks like:
[#|2007-08-10T15:00:52.551-0700|INFO|GlassFish10.0|javax.enterprise.system.core|_ThreadID=10;_ThreadName=Thread-2;|Listening on port 8080|#]
[#|2007-08-10T15:00:52.736-0700|INFO|GlassFish10.0|javax.enterprise.system.core|_ThreadID=10;_ThreadName=Thread-2;|Supported containers : phobos,web,jruby,php|#]
[#|2007-08-10T15:00:52.753-0700|INFO|GlassFish10.0|javax.enterprise.system.core|_ThreadID=10;_ThreadName=Thread-2;|Glassfish v3 started in 802 ms|#]
asadmin deploy --path hello
C:\workarea\samples\gfv3>java -jar C:\testbed\v3-p1-v2\glassfish\bin\\..\lib\admin-cli-10.0-SNAPSHOT.jar deploy --path helloThe GlassFish console shows the following entry:
SUCCESS : Application hello deployed successfully
[#|2007-08-10T15:01:53.833-0700|INFO|GlassFish10.0|GRIZZLY|_ThreadID=11;_ThreadName=httpWorkerThread-8080-0;|New Servicing page from: C:\workarea\samples\gfv3\hello\public|#]
C:/testbed/v3-p1-v2/glassfish/lib/jruby/lib/ruby/gems/1.8/gems/actionmailer-1.3.3/lib/action_mailer.rb:49 warning: already initialized constant MAX_LINE_LEN [#|2007-08-10T15:02:15.740-0700|INFO|GlassFish10.0|javax.enterprise.system.tools.deployment|_ThreadID=11;_ThreadName=httpWorkerThread-8080-0;|hello jruby application loaded in 22083 ms|#]
http://localhost:8080/hello/say/hello". The GlassFish console shows the
following entry:/hello/say/hello [#|2007-08-10T15:03:22.222-0700|INFO|GlassFish10.0|GRIZZLY|_ThreadID=12;_ThreadName=httpWorkerThread-8080-1;|The main point to notice here is that the Rails application request is served directly by the Grizzly connector.
Processing SayController#hello (for 127.0.0.1 at 2007-08-10 15:03:22) [GET] |#]
[#|2007-08-10T15:03:22.225-0700|INFO|GlassFish10.0|GRIZZLY|_ThreadID=12;_ThreadName=httpWorkerThread-8080-1;| Session ID: a78627d02071347f6fb5f0268fa47f18
|#]
[#|2007-08-10T15:03:22.227-0700|INFO|GlassFish10.0|GRIZZLY|_ThreadID=12;_ThreadName=httpWorkerThread-8080-1;| Parameters: {"action"=>"hello", "controller"=>"say"}
|#]
[#|2007-08-10T15:03:22.253-0700|INFO|GlassFish10.0|GRIZZLY|_ThreadID=12;_ThreadName=httpWorkerThread-8080-1;|Rendering say/hello |#]
[#|2007-08-10T15:03:22.295-0700|INFO|GlassFish10.0|GRIZZLY|_ThreadID=12;_ThreadName=httpWorkerThread-8080-1;|Completed in 0.06500 (15 reqs/sec) | Rendering: 0.0 6300 (96%) | 200 OK [http://localhost/hello/say/hello]
|#]
This concludes all the steps required to run a simple JRuby on Rails application on GlassFish. If you want to run the same application using the WEBrick container, then follow the additional steps given below:
jruby script/server=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2007-08-10 14:14:26] INFO WEBrick 1.3.1
[2007-08-10 14:14:26] INFO ruby 1.8.5 (2007-06-07) [java]
[2007-08-10 14:14:26] INFO WEBrick::HTTPServer#start: pid=6336176 port=3000
http://localhost:3000/say/hello" in a browser window and it shows the
message:127.0.0.1 - - [10/Aug/2007:14:15:25 PDT] "GET /say/hello HTTP/1.1" 200 89
- -> /say/hello
127.0.0.1 - - [10/Aug/2007:14:15:27 PDT] "GET /favicon.ico HTTP/1.1" 200 0
- -> /favicon.ico
In the process, I found Ruby on Rails Cheatsheet very handy for a quick summary of commands.
The NetBeans IDE provides a comprehensive support for Ruby code completion, refactoring, debugging, Rails support, support for RHTML files, code templates, unit test execution, shortcuts, and much more.
Technorati: jruby ruby glassfish grizzly jrubyonglassfish netbeans rubyonrails
Posted by Arun Gupta in web2.0 | Comments[21]
|
|
|
|
|
Today's Page Hits: 1995
Total # blog entries: 1002