Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1529912
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 23:22:19

一起学习

Rails和java EE的整合
下文将介绍一下在GlassFish v3上的Rails和java EE的整合。GlassFish v3是GlassFish V2的下一个版本,其关注的重点是模块化和使得运行非Java EE的容器和模块成为可能。
下面是详细的细节说明:
1. 使用JRuby 1.1(安装Rails),按照如下步骤创建一个Rails应用“railsee3”:
~/testbed/jruby-1.1/samples/rails >../../bin/jruby -S rails railsee3
create
create app/controllers
create app/helpers
create app/models
. . .
create log/production.log
create log/development.log
create log/test.log
2. 添加Servlet描述 (Servlet descriptors)
1.创建一个新文件夹"WEB-INF",在该文件夹下创建一个新文件"web.xml"
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"">


HelloServlet
server.HelloServlet


HelloServlet
/hello


2. 在文件夹"WEB-INF"中创建一个新文件"sun-web.xml":

"-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN"

"
/ appserver/dtds/sun-web-app_2_5-0.dtd">

/servlet

3. 创建一个新的文件夹"WEB-INF/lib"。


3. 创建、复制servlet
1. 创建一个java library (参见该超链接的内容)
2.从NetBeans project的文件夹"dist"中复制"HelloServlet.jar"到"WEB-INF/lib"文件夹中。

4. 在GlassFish中配置JRuby-on-Rails,如下编辑"config/asenv.conf" 和配置JRUBY_HOME:

JRUBY_HOME="/Users/arungup

5 .如下部署Rails应用:
~/testbed/jruby-1.1/samples/rails >~/testbed/glassfish/v3/p2b9/glassfish/bin/asadmin deploy --force=true railsee3
railsee3 deployed successfully
Command deploy executed successfully.

6. 现在就可以在如下地址""访问刚才部署的servlet了,默认的浏览器外观看起来如下:

通过URL传递一个参数,浏览器会展示如下:

就这样,你的Java EE Servlet和Rails 应用绑定在一起部署在GlassFish v3上了。现在我们可以添加一些Controller和view到Rails应用上来展示一个完整的Java EE和Rails的整合。

7.创建一个新的Controller和view
~/testbed/jruby-1.1/samples/rails/railsee3 >../../../bin/jruby script/generate controller home index
JRuby limited openssl loaded. gem install jruby-openssl for full support.

exists app/controllers/
exists app/helpers/
create app/views/home
exists test/functional/
create app/controllers/home_controller.rb
create test/functional/home_controller_test.rb
create app/helpers/home_helper.rb
create app/views/home/index.html.erb

8.在"app/controllers/home_controller.rb" 中改变生成的控制器(controller):
class HomeController < ApplicationController

include Java

def index
url = java.net.URL.new("");
conn = url.open_connection;
reader = java.io.BufferedReader.new(java.io.InputStreamReader.new(conn.get_input_stream));
@servlet_output = "";
input_line = reader.read_line;
while input_line != nil
@servlet_output << input_line;
input_line = reader.read_line;
end
reader.close;
end
end

9.在"app/views/home/index.rhtml.erb" 中改变生成的试图(view)

Home#index


Find me in app/views/home/index.html.erb

<%= @servlet_output %>

10. 重新部署Rails 应用后会在以下地址""看到如下图所示画面:

所以,在GlassFish v3完全不需要任何类似于Warbler的Gems或者类似于Goldspike的插件(plugin)就可以部署Rails应用。

参考:
http://blogs.sun.com/arungupta/entry/rails_and_java_ee_integration2

下载本文示例代码


Rails和java EE的整合——在 GlassFish v3中Rails和java EE的整合——在 GlassFish v3中Rails和java EE的整合——在 GlassFish v3中Rails和java EE的整合——在 GlassFish v3中Rails和java EE的整合——在 GlassFish v3中Rails和java EE的整合——在 GlassFish v3中Rails和java EE的整合——在 GlassFish v3中Rails和java EE的整合——在 GlassFish v3中Rails和java EE的整合——在 GlassFish v3中Rails和java EE的整合——在 GlassFish v3中Rails和java EE的整合——在 GlassFish v3中Rails和java EE的整合——在 GlassFish v3中
阅读(209) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~