问题标签 [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.
sinatra - 运行 Sinatra 应用程序的首选方式是什么?
编辑:我让应用程序使用 TorqueBox 工作,所以我猜这个问题与特立尼达有关。但是,我认为我对运行 Sinatra 应用程序的首选方式的猜测仍然有效。
我正在使用 JRuby、Bundler 和模块化风格。这是我的应用程序代码:
启动我的应用程序的正确方法是什么(即什么样的命令)?我正在使用 Trinidad,因为我读到它是 JRuby 应用程序的好解决方案(我无法让 TorqueBox 工作)。目前我正在通过“trinidad config.ru”运行我的应用程序,但它会引发以下错误消息:
我正在使用 Trinidad and Rack 的 1.4.1 版本、JRuby 的 1.7.0.preview1 和 Sinatra 的 1.3.3 版本。
如果我运行“bundle exec trinidad config.ru”,我会收到以下错误:
java - 如何在 Jruby-rack 中配置自定义 servlet?
根据Jruby-Rack Github,我们可以配置为使用 org.jruby.rack.RackServlet 而不是上下文监听器。
我们可以使用另一个自定义 servlet 而不是 RackServlet 吗?或者我们可以覆盖 org.jruby.rack.RackServlet 吗?
sinatra - sinatra 应用在 jruby 上的性能
我有一个 sinatra 应用程序,它的执行速度比我想要的要慢得多。我的第一个怀疑是我自己的代码是瓶颈,所以我将它提取到一个独立的基准测试脚本中。
make_calls 调用我自己的代码的地方。我很高兴地说,当我们达到 100 个线程时,所有线程中 make_calls 的累积时间是 0.6 秒,这对于我的目的来说已经足够快了。我在上面的线程中包装 make_calls 方法的原因是因为我自己的代码使用线程(通过 java.concurrent.FixedThreadPool(500) 的 java 本机线程)/ExecutorService,我想确保这在一个环境中表现良好可能使用其他线程模型。一旦 jruby 热身,单线程中的单次迭代将在大约 0.02 秒内运行。
所以上面是好的,但是当我将它添加到一个 sinatra web 服务器时:
对此端点的请求的响应时间约为 0.5 秒 - 增加并发请求的数量,响应时间以线性方式上升。我已经使用了 jetty-rackup 和 trinidad 来尝试这个,在 linux 和 solaris 上都使用了 jruby 1.7。
我试图优化 trinidad 实例无济于事(最大/最小运行时间等)。我们看到的最佳性能是在线程安全中运行任一服务器!模式,并且两台服务器在此模式下都表现出比较的性能。
谁能向我解释时间消耗在哪里或如何改进此设置?
jruby - 拥有 trinidad 的最简单方法取决于 jruby-rack 的替代版本?
当前的 Trinidad gem 依赖于 jruby-rack 1.1.0,对于我的每一项资产,我的开发日志中都会显示一些错误
/Users/bijan/.rvm/gems/jruby-1.7.3/gems/rack-1.4.5/lib/rack/utils.rb:399 warning: multiple values for a block parameter (2 for 1)
这是一个显然已经在当前的 jruby-rack (1.2) master 分支中解决的问题,我想让 trinidad 依赖于此。
有没有办法从我的 Gemfile 中做到这一点?或者比分叉 Trinidad gem 并指定不同版本的 jruby-rack 更简单的解决方案(并希望它可以工作,因为它可能不会)。
tomcat - jruby 运行时和 tomcat
我们在 tomcat 下运行 jruby/rails 应用程序,由于我们正在使用的一些组件,无法立即转换到线程安全。在此期间,我们计划设置jruby.runtime.min和jruby.runtime.max以防止 perm-gen 内存不足错误。不幸的是,这会将并发用户的数量限制在一个相当小的数量,所以我的问题是运行时何时被回收?是基于会话还是其他。降低会话超时是否有助于加快池的可用性,或者还有更多的作用。任何可以更好地了解 jruby 运行时如何工作的细节的链接将不胜感激。
ruby - 在 google appengine 上部署 ruby + sinatra 应用程序
我正在尝试在 google appengine 中部署一个 ruby + sinatra 应用程序。使用 appengine-java-sdk-1.8.4 的部署过程似乎可以结束,但是当我访问应用程序 url 时出现此错误:
任何想法?
谢谢。
sinatra - 使用 warbler 打包时,会话在 Sinatra 应用程序中不起作用
我创建了一个简单的 sinatra 应用程序,但在将其作为可执行战争运行时无法使会话工作。
我已经验证它在通过“jruby -S rackup”运行时可以工作,但是当使用“java -jar myapp.war”运行时,我发现会话在每个请求上都会被重置:
除了设置要启用的会话之外,当应用程序与 warbler 打包并作为可执行战争运行时,是否需要任何特殊设置才能使会话工作?
sinatra - 无法将 sinatra Web 应用程序部署到 weblogic 12
我的情况与 Failed to deploy rails app to weblogic ....
但在 Sinatra 中的“Hello world”示例中。Weblogic 12. 修改 weblogic.xml 对我没有帮助:(
ruby-on-rails - 如何在同一个 tomcat 中部署同一个 Rails 应用程序的多个实例
我们想使用 jruby-rack 在单个 Tomcat 容器中部署同一个 Rails 应用程序的多个实例。
第一个实例很好,但第二个失败:
解决问题的方法是jruby.max.runtimes
增加to 。但是如果我正确设置了这个参数,这意味着可以在一个实例中生成两个 jRuby“进程”——这不是我们想要的,并且会阻止应用程序正常工作。我们需要的是两个独立的“进程”,一个用于我们部署的每个实例。web.xml
app2
2
这是否可能并且正在设置jruby.max.runtimes
正确的解决方案?
jruby - 在tomcat中调试JRuby机架运行时错误
我们最近将旧的 Rails 应用程序从 rails 3 升级到了 4.2,以及许多其他 gem 更新。现在我无法让我的 rails 应用程序加载任何页面。我们使用的是 JRuby 9.1.0.0,但升级到了 9.1.8.0。但是,我在两个版本上都遇到了同样的问题。
一旦我们用最新的启动tomcat .war
,它就会一直运行,直到我看到INFO: Server startup in 1234ms
消息。我已经在我的 rails 环境/初始化程序文件中添加了一些调试语句来跟踪它,并且它正在触及它们中的每一个。因此,一旦我看到来自 tomcat 的启动消息,我认为它会没事的。但是,它立即多次吐出以下消息:
DEBUG: resetting rack response due exception
每次我加载一个 URL 时,它也会在我的日志中显示该消息。
我看到它来自这个 jruby-rack 类,但我不知道如何进一步调试或排除故障。
我假设我的配置中的某些东西导致了问题,或者某个类/模块以某种方式使其短路,但我不确定如何识别它是哪一个或隔离问题。
有谁知道获取更详细日志的方法或找出问题所在的方法?
如果有帮助,很高兴发布任何配置/gemfiles 等。