【发布时间】: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