我正在使用warbler将我的JRuby Web应用程序打包成war文件,并将其部署到Apache Tomcat 8.0.21。这很好用。但是,我正在尝试使用“编译”命令来运行warbler:
warble compiled war
当我部署生成的war文件时,我遇到以下异常:
org.jruby.rack.RackInitializationException: load error: /apache-tomcat-8.0.21/webapps/ROOT/WEB-INF/config/boot -- java.lang.ClassCastException: java.lang.Object cannot be cast to java.lang.invoke.SwitchPoint
from org/jruby/RubyKernel.java:1054:in `require'
from jar:file:/apache-tomcat-8.0.21/webapps/ROOT/WEB-INF/lib/jruby-stdlib-1.7.4.jar!/META-INF/jruby.home/lib/ruby/shared/rubygems/custom_require.rb:36:in `require'
from file:/apache-tomcat-8.0.21/webapps/ROOT/WEB-INF/lib/jruby-rack-1.1.13.3.jar!/jruby/rack/rails/environment3.rb:23:in `load_environment'
from file:/apache-tomcat-8.0.21/webapps/ROOT/WEB-INF/lib/jruby-rack-1.1.13.3.jar!/jruby/rack/rails_booter.rb:79:in `load_environment'
from <script>:1:in `(root)'
at org.jruby.rack.RackInitializationException.wrap(RackInitializationException.java:29)
at org.jruby.rack.RackApplicationFactoryDecorator.init(RackApplicationFactoryDecorator.java:98)
at org.jruby.rack.RackServletContextListener.contextInitialized(RackServletContextListener.java:50)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4728)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5166)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:940)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1738)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Caused by: org.jruby.exceptions.RaiseException: (LoadError) load error: /apache-tomcat-8.0.21/webapps/ROOT/WEB-INF/config/boot -- java.lang.ClassCastException: java.lang.Object cannot be cast to java.lang.invoke.SwitchPoint
at org.jruby.RubyKernel.require(org/jruby/RubyKernel.java:1054)
at RUBY.require(jar:file:/apache-tomcat-8.0.21/webapps/ROOT/WEB-INF/lib/jruby-stdlib-1.7.4.jar!/META-INF/jruby.home/lib/ruby/shared/rubygems/custom_require.rb:36)
at RUBY.load_environment(file:/apache-tomcat-8.0.21/webapps/ROOT/WEB-INF/lib/jruby-rack-1.1.13.3.jar!/jruby/rack/rails/environment3.rb:23)
at RUBY.load_environment(file:/apache-tomcat-8.0.21/webapps/ROOT/WEB-INF/lib/jruby-rack-1.1.13.3.jar!/jruby/rack/rails_booter.rb:79)
at RUBY.(root)(<script>:1)
为什么编译版本会产生异常?任何帮助表示赞赏。谢谢!
答案 0 :(得分:0)
我认为这是一个与鸣鸟宝石有关的错误。我刚刚将JRuby版本从1.7.4升级到1.7.5,并将warbler从1.4.3升级到1.4.8,这解决了这个问题。