问题标签 [jruby-rack]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 使用 JRuby 初始化机架时出错
使用 warbler 构建的应用程序启动 JBoss 时出现此错误:
调用栈:
有任何想法吗?
jruby - 使用 Warbler 和降级的 JRuby-Rack 时加载第三方 JAR 问题?
我们正在使用 Warbler 将我们的应用程序部署到 JBoss。服务器似乎可以正常启动,但是当向应用程序发送请求时,我们收到以下错误:
如您所见,在尝试加载 mylib.jar 时,它似乎崩溃了,这是我们在 user.rb 类中使用的 Java 库。我已经检查了 mylib.jar 文件是否存在于 myapp/lib 目录中,以及它是否被 Warbler 成功打包(它位于 WEB-INF/lib/mylib.jar 中)。
请注意:在遇到此处详述的问题后,我将 JRuby-Rack 降级为 1.0.10 - NoMethodError: relative_url_root when deploying rails app on tomcat。所以也许这个问题与此有关?
我不知道发生了什么。有任何想法吗?
其他可能有用的细节:
宝石文件:
配置/warble.rb:
应用程序/模型/user.rb:
全回溯:
“宝石列表”的输出:
tomcat - 如何在 Tomcat 中的 Rails 初始化期间创建全局命名空间常量?
首先是一些背景知识:我有一个 Rails 2.2.2 应用程序,其中包含各种 janky 依赖项和自定义项,这使我暂时无法升级到 2.2.2 以上。当前计划是将此应用程序迁移到 JRuby (1.6.5),将其部署为 Tomcat (6.0.23 — 尚未绑定到此特定版本 FWIW) 中的战争,使用 warbler (1.3.2) 将其打包。
我想让应用程序的 JRuby 分支与原版应用程序有很大的不同,因为我不知道需要多长时间才能梳理和修复由运行时环境中的差异引起的所有问题。所以我希望能够继续干净、轻松地合并到来自香草应用程序的正在进行的工作中。
environments/*.rb
可以使用文件中设置的全局命名空间常量来配置应用程序中的许多自定义行为。但是可以通过使用 yaml 配置文件或设置 shell 环境变量来覆盖这些值;这主要是为了开发过程中的灵活性,不同的开发人员有时需要自定义各种设置。到目前为止,该系统运行良好,使我们的environments/development.rb
文件相对稳定且整洁,同时在我们进行黑客攻击时仍使我们能够对自定义进行大量控制。
我想在迁移到 JRuby 时保留这个定制系统。到目前为止,我正在使用自定义config/web.xml.erb
的方法将 yaml 文件中的相关环境变量和设置转换为<env-entry>
片段,从而使它们在初始化期间通过java:comp/env
JNDI 上下文可用。在更受限制的环境(如登台或生产)中,可以通过<Environment>
在容器context.xml
文件中包含override
属性设置为false
.
到现在为止还挺好。但是现在我正在努力将在初始化期间从 JNDI 上下文中检索到的值转换为全局命名空间常量。以下是相关位的摘录:
配置/环境/developer.rb:
lib/config_helper.rb:
网页.xml:
catalina.out:
当然,我希望最后一行是“FOO 现在是'bar'”。第 14 行lib/config_helper.rb
似乎是出了问题的地方。类似的代码在 vanilla ruby 中运行良好,但在 Tomcat 初始化期间它在这里不起作用。
那么,如何在 Tomcat 中的 Rails 初始化期间从 JNDI 环境条目中创建全局命名空间常量?
ruby - Jruby Warbler 在 Tomcat 上为 Sinatra 生成战争 -- 找不到查看文件
我在使用 Warbler 生成的 WAR 部署到 Tomcat 时遇到了以下问题。当我运行“rake war”时,它会正确生成要部署的war文件;但是,在部署到 Tomcat 并导航到应用程序库时,我收到以下消息:
Errno::ENOENT at /micro_reg_90day/login 没有这样的文件或目录 - jndi:/localhost/micro_reg_90day/WEB-INF/views/login.erb 文件:RubyFile.java 位置:初始化行:464
在浏览器内。奇怪的是,当我转到文件系统中的扩展 webapp 时——我在 webapp/WEB-INF/views 目录中看到了这个:
可以看到,login.erb 文件正在被打包进war;但是,在尝试调用时没有被 JRuby 发现
在 Sinatra 应用程序中。以下是我的配置/warbler.rb:
我唯一注意到的是,Tomcat 告诉我的路径未找到以 jndi 为前缀: - 这是否表明 warbler 应该将 .erb 文件打包为战争中的某种命名资源?
谢谢您的帮助!
tomcat - jruby-rack servlet 容器是否支持 PUT/DELETE?
我正在尝试使用 Warbler 将 Rails 应用程序部署为 WAR。我让它在 Tomcat 6 中运行,它似乎运行良好。但是,我的所有PUT
请求DELETE
都被拒绝了403 (Forbidden)
。
据我所知,Debian/Ubuntu 上的默认 Tomcat 安装通过以下方式禁用了这些方法:
我已经尝试将其设置为false
我的/etc/tomcat6/web.xml
但没有骰子。我想知道我的WAR中是否必须做类似于jruby-rack
Warbler打包的servlet容器的事情?如果是这样,我将如何处理?
如果不是,为什么 Tomcat 会拒绝所有发送到我的 Rails 应用程序的PUT
s 和s ?DELETE
ruby - Warbler 1.3.2 不承认 Gemfile 依赖项
它似乎莺没有使用捆绑器来安装依赖的宝石。我已经让这个堆栈跟踪出现在每个作为依赖项的 gem 上,并且是根据我的应用程序的 Gemfile在 Gemfile.lock 中自动指定的。这是我的warble.rb
使用 1. RubyGems 1.7.2 自 1.8.17 和其他不会捆绑 2. JRuby 1.6.7(用于部署) 3. Ruby-1.9.3-p125(用于本地开发) 4. Padrino 0.10.5 5.莺 1.3.2 6. rbenv 7. Mac OSX
知道为什么莺不会包含依赖的 gem,我最终必须在 Gemfile (而不是 Gemfile.lock)中明确指定每个依赖项。
padrino - 用于 Rack::Handler:Module 的 Padrino & Trinidad 未定义方法“注册”
尝试在 Trinidad 上运行基于 Padrino 框架的 sample_blog 应用程序会引发奇怪的错误
Rack::Handler:Module 的未定义方法“注册”
使用:trinidad-1.3.4 jruby-rack-1.1.4
以下是堆栈跟踪
ruby-on-rails-3 - 使用 JRuby 和 warbler 构建 .war
我已经尝试了几个小时将 JRuby Rails 应用程序打包为实际有效的战争,但没有成功......(JRuby 1.6.7,warbler 1.3.5,Rails 3.2.2)
问题 #1:Warbler 似乎喜欢将所有库集中在一个根文件夹中,而不是尊重它们最初来自的子目录。例如,Rails 应用程序本身运行良好,但是当库被引用为
请注意, foo/bar.jar 和 baz.rb 实际上存在于 WEB-INF/lib 中,我只是不知道如何配置 Warbler 以将其连接起来,因此需要正常工作。
问题 #2:如果我屈尊将所有要求更改为
,如果我构建一个可执行的war文件,一切都很好,但是如果我尝试将war放入Tomcat 6.0.20安装中,应用程序无法初始化:
再多的谷歌搜索也无法说明问题所在。据推测,战争遗漏了一些东西或以某种方式错误配置,但它是什么?
ruby-on-rails - 运行 JRuby 线程的依赖问题
我在带有 Rails 3.0.2 的 JRuby 1.6.7 上运行。我有一些调用 REST 服务的方法。
最好同时执行它们,而不是每个需要 2 秒才能返回总共 6 秒。我会在大约 2 秒内取回数据。
我不能使用 Fibers,因为以下调用使用阻塞 io 并且无法修改,因此我无法将它们编码为“合作”工作。我正在尝试使用抢先线程。
我在线程中有一个简单的调用,如下所示。
虽然当此代码在线程内执行时出现以下错误。我猜它找不到正确的文件/类,因为它在一个新线程中?有任何想法吗?
预期 /home/joe/ruby/analysis/app/models/dashboard/reports.rb 来定义 Dashboard::Reports Rails.root: /home/joe/ruby/analysis
ruby - Multiple war web applications in ear with JRuby rack
I'm trying to pack two JRuby Sinatra web apps (runtime 1.9) bundled with warbler into an ear file. After deploying in glassfish (2.1.1 or 3.1) I have a crash.
JRuby.jar, jruby-stdlib.jar and jruby-rack.jar are accesible in the classpath of both applications and both of them deploy correctly if I leave only one of them. But if I leave them two the second one always crashes while deploying for an error during rack startup:
Based on the error, it looks like the second application for a reason theat I can't understand is using 1.8 rubygems:
There is no require 'rubygems' in my code or such.
My gemfile.lock is
Thanks a lot in advance.