jruby on rails在tomcat的配置实践

http://tech.ddvip.com   2008年09月03日    社区交流

关键字: JRuby Java

本文详细介绍jruby on rails在tomcat的配置实践

  由于要在tomcat上部署3个rails项目,暂时使用的版本是rails1.2.3,jruby1.1.2,tomcat5.5.12(都有点旧了)

  用了一台非常烂的测试机器(p4 2.8 1g),当然,真实服务器比这个要好n多了。。

  1.使用rails开发应用之后,使用goldspike打包,不过我老是不成功,所以基本都手动添加,需要的东西主要是

  Web-inf下面的lib:jruby-complete-1.1.2.jar

  mysql-connector-java-5.1.6-bin.jar

  goldspike-1.6.jar

  commons-pool-1.3.jar

  activation-1.1.jar

  web-inf下面的gems,从你的ruby gems那里copy过来就可以了

  主要有rails,另外由于使用mysql,所以有activerecord-jdbc-adapter-0.8

  activerecord-jdbcmysql-adapter-0.8

  jdbc-mysql-5.0.4

  jruby-openssl-0.2.3 //可选

  2.修改environment.rb,不过貌似rails2是不需要配置这个的if defined?(JRUBY_VERSION)

  require 'rubygems'

  gem 'activerecord-jdbc-adapter'

  require 'jdbc_adapter'

  end

  Rails::Initializer.run do config

  #.......

  还有database.yml,使用jndiproduction:

  adapter: jdbc

  jndi: java:comp/env/jdbc/gdpolice

  最后是production.rbconfig.cache_classes = true

  config.action_controller.consider_all_requests_local = false

  config.action_controller.perform_caching = true

  config.action_view.cache_template_loading = true

  config.breakpoint_server = false

  3.配置web.xml

<?xmlversion="1.0"encoding="UTF-8"?> 
<web-appxmlns="http://java.sun.com/xml/ns/j2ee" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
 version="2.4"> 
  <context-param> 
    <param-name>jruby.standalone</param-name> 
    <param-value>true</param-value> 
  </context-param> 
  <context-param> 
    <param-name>rails.env</param-name> 
    <param-value>production</param-value> 
  </context-param> 
  <context-param> 
    <param-name>files.default</param-name> 
    <param-value>rails</param-value> 
  </context-param> 
    
  <!--设置jruby线程池参数--> 
  <context-param> 
    <param-name>jruby.pool.maxActive</param-name> 
    <param-value>10</param-value> 
  </context-param> 
  <context-param> 
    <param-name>jruby.pool.maxWait</param-name> 
    <param-value>50000</param-value> 
  </context-param> 
    
  <!--其他优化设置:objectspace和jit参数,设置session为db方式--> 
  <context-param> 
    <param-name>jruby.objectspace.enabled</param-name> 
    <param-value>false</param-value> 
  </context-param> 
  <context-param> 
    <param-name>jruby.jit.threshold</param-name> 
    <param-value>0</param-value> 
  </context-param> 
  <context-param> 
    <param-name>jruby.session_store</param-name> 
    <param-value>db</param-value> 
  </context-param> 
    
  <servlet> 
    <servlet-name>rails</servlet-name> 
    <servlet-class>org.jruby.webapp.RailsServlet</servlet-class> 
  </servlet> 
  <servlet> 
    <servlet-name>files</servlet-name> 
    <servlet-class>org.jruby.webapp.FileServlet</servlet-class> 
  </servlet> 
  <listener> 
    <listener-class>org.jruby.webapp.RailsContextListener</listener-class> 
  </listener> 
 
  <!--Allowallrequeststogotothefilesservletfirst--> 
  <servlet-mapping> 
    <servlet-name>files</servlet-name> 
    <url-pattern>/</url-pattern> 
  </servlet-mapping> 
      
  <resource-ref> 
    <res-ref-name>jdbc/gdpolice</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
  </resource-ref> 
</web-app>

责编:豆豆技术应用

正在加载评论...