我正在研究如何将Ruby on Rails应用程序(在JRuby上运行)部署到Tomcat实例进行测试.
tomcat实例正在我可以SSH到的Solaris服务器上运行.我已经看过使用Capistrano,但似乎没有太多关于使用它来部署到Tomcat,甚至在JRuby下运行它,并且由于Windows/JRuby环境我一直在Capistrano中遇到错误我的电脑正在运行(是的,这是公司 - 不是我的选择,但我必须忍受它).
我正在使用warble来构建.war文件,一旦我手动复制并部署它,应用程序就会部署并运行正常.我想要更简单,更自动化的东西来实现它.
有人这样做过吗?网络上的文档似乎很薄.
我正在使用Jruby和rails 2.2.2.我的问题是我的迁移未正确写入数据库模式.
这是我的迁移:
class CreateNotes < ActiveRecord::Migration
def self.up
create_table(:notes, :options => 'ENGINE=MyISAM') do |t|
t.string :title
t.text :body
t.timestamps
end
execute "alter table notes ADD FULLTEXT(title, body)"
end
Run Code Online (Sandbox Code Playgroud)
这是它在schema.rb中生成的内容
create_table "notes", :force => true do |t|
t.string "title"
t.text "body"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "notes", ["title", "body"], :name => "title"
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
'ENGINE=MyISAM'进入架构?add_index "notes", ["title", "body"], :name => "title"?以及如何强制迁移将其作为执行语句保留?感谢Christian Lescuyer的回答.但是,当我尝试这个没有改变.我取消注释了config.active_record ...行,但我的架构没有改变.我已经尝试了jruby和ruby 1.8.6上的rails 2.2.2和edge rails,架构没有变化.谁能告诉我我做错了什么?
Java问:我喜欢CSS用于简单的网页,但是当涉及现实世界的网站时,它会厌恶它,因为你得到了css爆炸和大量的重复.
我很想使用Sass和Compass,但它们是Ruby程序,很可能需要一些有趣的Maven + JRuby才能为Java Web app dev工作.如果您使用Eclipse或支持与正在运行的Web应用程序同步的任何IDE,这也会很困难.
对于地狱中的CSS,还有一个更好的替代方案是Java吗?
我有一个创业公司考虑建立一个Java后端和一个Rails前端.Java后端将负责为数据库创建缓存层并提供其他附加服务.Rails前端主要用于创建webapp和监视工具.
有哪些初创公司/公司使用这种设置?在开发速度,部署,可伸缩性和集成方面有哪些问题?
(对我来说有用的是个人经验或非正式的案例研究.我想优先解决Grails或JRuby等替代方案的答案,除非事实证明这是等式中的一个重要部分)
谢谢!
我能够让所有三个人在"Scala项目"中运行一个Hello World,并以.java文件为主.问题是它是从我没有使用的"Java项目"中提取的,尽管我的"Scala项目"中有JRE系统库.以下是我正在做的有助于理解的代码......
JRuby.java
import org.jruby.embed.ScriptingContainer;
public class JRuby {
public static void main(String[] args)
{
System.out.println("Java, Scala and Ruby using the JRE.\n");
ScriptingContainer container = new ScriptingContainer();
container.runScriptlet("puts 'This is JRuby code in .java file!'");
new ScallaHello().hello();
System.out.println("This is standard Java Code in .java file!");
}
}
Run Code Online (Sandbox Code Playgroud)
ScallaHello.scala
class ScallaHello {
def hello() {
println("This is a Scala Method in .scala file, object set in .java file")
}
System.out.println("This is Java Code in .scala file!")
println("This is Scalla …Run Code Online (Sandbox Code Playgroud) 我正在运行JRuby on Rails应用程序.我在日志中随机看到了很多内容:
The max pool size is currently 5; consider increasing it
我知道我可以增加配置中的最大池大小来解决这个问题.我想解决的问题是要了解最佳数量应该是多少.我试图避免连接的争用问题.显然将这个数字设置为令人讨厌的大小也无济于事.
是否有一般协议可以了解您的应用程序最佳池大小设置?
我很简单地需要在Clojure中使用Ruby类.复杂的因素是该类是在宝石中提供的.最佳方法是按照以下方式设置我的Leiningein项目文件:
(project foo ""
...
:dependencies [[clojure ...]
[jruby ... ]])
Run Code Online (Sandbox Code Playgroud)
同样,我更愿意只检查gem及其依赖项到本地repo目录中.因此,从我理想的用法是:
(ns bar.baz
(require [jruby.something :as jruby])
(def obj (jruby/CreateAnInstance "TheGemClass"))
(def result (jruby/CallAMethod obj "method_name" some args))
Run Code Online (Sandbox Code Playgroud)
谢谢.
编辑:我改变了标题,因为问题不是我最初的想法.事实上,logstash需要一分多钟才能启动,这可能被误解为"沉默"......
我正在尝试使logstash运行,所以我按照官方网站上的说明进行独立安装:http://logstash.net/docs/1.1.4/tutorials/getting-started-simple
基本上,我得到了logstash-1.1.4-monolithic.jar文件,然后构建一个非常简单的配置文件:( example.conf)
input {
stdin { type => "stdin-type" }
}
output {
stdout { debug_format => "json" }
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行logstash时,什么都没有出来(我在STDIN中键入随机文本,但没有得到响应):
# java -jar logstash-1.1.4-monolithic.jar agent -f example.conf
Test
toto
hey ??? Wakeup !!!
^C
Run Code Online (Sandbox Code Playgroud)
(有关信息:Java版本是正确的)
# java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
拜托,有人能告诉我我错过了什么吗?
我在JRuby下的Rails控制台遇到了各种各样的问题,包括
^[[A或^[[B分别插入)^[[D或^[[C分别插入)1~或4~插入); Ctrl+ a/ Ctrl+ e虽然工作我从rvm安装了我的JRuby解释器,如下所示:
rvm install jruby-1.6.8 --1.9
Run Code Online (Sandbox Code Playgroud)
我的Rails项目是使用Bundler(而不是rvm gemsets)管理的,所以我使用我的Rails控制台bundle exec rails c.有趣的是,原始irb以及bundle exec irb没有上述大部分问题,除了Home/ Endkeys和Ctrl+ c需要一个Enter之前我得到一个新的提示行.
我可以用准系统Rails复制这个问题Gemfile:
source …Run Code Online (Sandbox Code Playgroud) 在我们的JRuby/Rails项目中,我们使用i18ngem,并支持日语和英语.我们的config/locales.ja.yml文件是UTF-8,没有任何BOM.
运行Rails 3.2.9时JRuby 1.7.1,我们现在看到以下错误:
% jruby -S rake spec:models
Psych::SyntaxError: (C:/Projects/foobar/trunk/config/locales/ja.yml):
expected <block end>, but found Scalar while parsing a block
mapping at line 7 column 33
parse at org/jruby/ext/psych/PsychParser.java:213
...
Run Code Online (Sandbox Code Playgroud)
解析ja.yml文件的YAML的这个错误现在在我们的Windows XP和Linux开发环境中发生,并且当我们为JVM显式设置以下系统参数时,似乎只会消失:
-Dfile.encoding=utf-8
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么会这样JRuby 1.7.1?
我没有看到这个1.6.8或1.7.0.