<%@ page contentType="text/html; charset=gb2312"%> Rails和java EE的整合——在 GlassFish v3中
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
Rails和java EE的整合——在 GlassFish v3中
     发布者: 发布时间:2008-04-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"
            <!DOCTYPE web-app PUBLIC
               "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
               "http://java.sun.com/dtd/web-app_2_3.dtd">
            <web-app>
               <servlet>
                <servlet-name>HelloServlet</servlet-name>
                <servlet-class>server.HelloServlet</servlet-class>
                </servlet>
               <servlet-mapping>
               <servlet-name>HelloServlet</servlet-name>
               <url-pattern>/hello</url-pattern>
               </servlet-mapping>
               </web-app>
            2. 在文件夹"WEB-INF"中创建一个新文件"sun-web.xml":

             <?xml version="1.0" encoding="UTF-8"?>

              <!DOCTYPE sun-web-app PUBLIC

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

                "http://www.sun.com/software
                  / appserver/dtds/sun-web-app_2_5-0.dtd">
              <sun-web-app error-url="">
              <context-root>/servlet</context-root>
                <class-loader delegate="true"/>

               </sun-web-app>

              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. 现在就可以在如下地址"http://localhost:8080/servlet/hello"访问刚才部署的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.
     http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
            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("http://localhost:8080/servlet/hello");
              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)
      <h1>Home#index</h1>
      <p>Find me in app/views/home/index.html.erb</p>

      <%= @servlet_output %>

10. 重新部署Rails 应用后会在以下地址"http://localhost:8080/railsee3/home/index"看到如下图所示画面:

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

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



(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
Rails和java EE的整合——在 GlassFish v3中
Silverlight和JavaScript的结合
Silverlight和JavaScript的结合
Sun公司加快JDK的开发—JDK6u6以及JDK6u10Beta发布!
Sun公司加快JDK的开发—JDK6u6以及JDK6u10Beta发布!
iPhone Java游戏端口软件测试版已发布
 
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号