【问题标题】:Deploying JRuby/Rails to Glassfish: undefined method `bundle_path' for Bundler:Module将 JRuby/Rails 部署到 Glassfish:Bundler:Module 的未定义方法“bundle_path”
【发布时间】:2011-09-25 06:25:24
【问题描述】:

尝试访问我的应用时,我的 Glassfish 日志中显示以下错误:

Caused by: org.jruby.exceptions.RaiseException: (NameError) method 'to_yaml' not defined in Object

查看日志我看到了:

undefined method `bundle_path' for Bundler:Module

我确认 warble 肯定会将 Bundler gem 放入我的 .war 文件中。

(使用 ruby​​ 1.9、rails 3.1、glassfish 3.0 和 3.1)

这也出现在 glassfish 日志中:

Policy Provider:Failed Permission Check: context (" myapp/myapp ") , permission (" (java.lang.reflect.ReflectPermission suppressAccessChecks) ") |#]

但是,我已经验证了在 server.policy 中授予的权限。

编辑:我修复了权限问题,前两个错误仍然存​​在。 (也就是说,权限问题要求我编辑一个它明确表示不要编辑的文件。尝试在 Glassfish 中的 server.policy 中授予此权限无效)。

以下是 Glassfish 日志文件中的相关环境信息:https://gist.github.com/1245825

【问题讨论】:

  • 如果您在启用了安全管理器的情况下运行 Glassfish,您能否通过暂时禁用它并再次部署来确认它不是问题的一部分?
  • 我禁用了安全管理器,错误仍然存​​在。
  • 请注意,即使禁用了安全管理器,ReflectPErmission suppressAccessChecks 上的权限检查也会失败。
  • 这个问题在github上好像有问题:github.com/jruby/warbler/issues/44
  • 我尝试了建议的修复,但没有解决任何问题。

标签: ruby-on-rails glassfish jruby bundler warbler


【解决方案1】:

您可以在 Glassfish 外部、nginx+passenger 或 apache2+passenger 配置上托管它,并让它代理 Glassfish。如果您不必与任何其他 java 资源/应用程序集成,这是一个双赢的解决方案。

【讨论】:

    【解决方案2】:

    这会影响某些应用程序服务器,但不会影响其他应用程序服务器。

    有关更多信息和快速修复,请参阅此主题。

    https://github.com/jruby/warbler/issues/44#issuecomment-2809940

    【讨论】:

      猜你喜欢
      • 2010-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多