目的
GAE上で動くRailsのコントローラでServletのHttpServletRequestオブジェクトを取得する環境
appengine-sdk 1.4.2Ruby on Rails 2.3.11
Ruby 1.8.7
Rack 1.2
JRuby Runtime 1.6.0
JRuby-Rack 1.0.5
概要
Google App Engine上で動くRuby on Railsの中でJava側のServletが受け取ったリクエストオブジェクトを使用したいことがあると思います。オブジェクトの取得
Servletが受け取ったオブジェクトは非常に簡単に取得できます。request.env['java.servlet_request']たったのこれだけです。
サンプルソース
次のサンプルソースはgetMethodメソッドを使用してアクセス方法(GETやPOSTなど)を取得して画面に表示するサンプルです。HttpServletRequestにどの様なメソッドが定義されているかはjavadocをご覧下さい。books_controller.rb(一部抜粋)
include Javabooks/index.html.erb(一部抜粋)
class BooksController < ApplicationController
def index
@servletRequest = request.env['java.servlet_request']
@books = Book.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @books }
end
end
#(略)
end
Listing books
アクセス方法:<%=h @servletRequest.getMethod() %>
#(略)
参考
HttpServletRequest (Java EE 6 )GAE on jRuby で Google アカウント認証をやってみる - @sugamasao.blog.title # => ”コードで世界を変えたい”