« Return to Thread: "org.jruby.rack.RackInitializationException: IO error -- rack" on Tomcat 5.5

Re: "org.jruby.rack.RackInitializationException: IO error -- rack" on Tomcat 5.5

by Michael Pitman-2 :: Rate this Message:

Reply to Author | View in Thread

Wow - I'm dredging up a really old stack trace here, but I've got this error at the moment trying to deploy to Tomcat 6.0.18. The application works fine with Jetty 6.1.1.

My machine has the following:
Ubuntu 8.10, amd64
64 bit jdk 1.6.0u10
JRuby 1.1.6
Rails 2.1.2
Tomcat 6.0.18
Warbler 0.9.12 with jruby-rack 0.9.3

Did anyone else encounter the problem and figure it out? I'd appreciate some help! It looks like it's dying on the line "require rack" - which is the first time it's looking for a ruby file in the root of a jar (the jruby-rack jar).

BTW - jruby-rack does not pass unit tests on my machine either - it looks like some problems with overrides of servlet classes.

Thanks,

Michael




Albert Ramstedt wrote:

> No, sadly I did not. My fix was to use glassfish instead, some people
> say using tomcat 6 works for them.
>
> Albert
>
> On Mon, Aug 4, 2008 at 6:24 PM, Nick Sieger <nicksieger@...> wrote:
>  
>> Hi Albert, did you ever find a solution to this issue?
>>
>> /Nick
>>
>> On Sun, Jul 20, 2008 at 8:38 AM, Albert Ramstedt
>> <albert.ramstedt@...> wrote:
>>    
>>> Hi.
>>>
>>> I am trying to deploy a war i made with warbler 0.9.9. When i drop it
>>> into tomcat i get a wierd error in the logs:
>>>
>>> SEVERE: Warning: error application could not be initialized
>>> org.jruby.rack.RackInitializationException: IO error -- rack
>>>        from file:/var/lib/tomcat5.5/webapps/auktion/WEB-INF/lib/jruby-rack-0.9.jar!/jruby/rack.rb:7
>>>        from file:/var/lib/tomcat5.5/webapps/auktion/WEB-INF/lib/jruby-rack-0.9.jar!/jruby/rack.rb:7:in
>>> `require'
>>>        from file:/var/lib/tomcat5.5/webapps/auktion/WEB-INF/lib/jruby-rack-0.9.jar!/rack/handler/servlet.rb:7
>>>        from file:/var/lib/tomcat5.5/webapps/auktion/WEB-INF/lib/jruby-rack-0.9.jar!/rack/handler/servlet.rb:1:in
>>> `require'
>>>        from <script>:1
>>>
>>> .. and further down:
>>>
>>> Caused by: org.jruby.exceptions.RaiseException: IO error -- rack
>>> Caused by: java.lang.StringIndexOutOfBoundsException: String index out
>>> of range: -1
>>>        at java.lang.String.substring(String.java:1932)
>>>        at java.lang.String.substring(String.java:1905)
>>>
>>>
>>> I have tried adding the rack gem to the gems, and have tried both the
>>> jruby 1.1.1 and 1.1.2 jars.
>>>
>>> What could be the problem?
>>>
>>> full backtrace:
>>>
>>> org.jruby.rack.RackInitializationException: IO error -- rack
>>>        from file:/var/lib/tomcat5.5/webapps/auktion/WEB-INF/lib/jruby-rack-0.9.jar!/jruby/rack.rb:7
>>>        from file:/var/lib/tomcat5.5/webapps/auktion/WEB-INF/lib/jruby-rack-0.9.jar!/jruby/rack.rb:7:in
>>> `require'
>>>        from file:/var/lib/tomcat5.5/webapps/auktion/WEB-INF/lib/jruby-rack-0.9.jar!/rack/handler/servlet.rb:7
>>>        from file:/var/lib/tomcat5.5/webapps/auktion/WEB-INF/lib/jruby-rack-0.9.jar!/rack/handler/servlet.rb:1:in
>>> `require'
>>>        from <script>:1
>>>
>>>        at org.jruby.rack.DefaultRackApplicationFactory.newRuntime(DefaultRackApplicationFactory.java:85)
>>>        at org.jruby.rack.DefaultRackApplicationFactory.createApplication(DefaultRackApplicationFactory.java:144)
>>>        at org.jruby.rack.DefaultRackApplicationFactory.newErrorApplication(DefaultRackApplicationFactory.java:99)
>>>        at org.jruby.rack.DefaultRackApplicationFactory.init(DefaultRackApplicationFactory.java:39)
>>>        at org.jruby.rack.PoolingRackApplicationFactory.init(PoolingRackApplicationFactory.java:53)
>>>        at org.jruby.rack.RackServletContextListener.contextInitialized(RackServletContextListener.java:38)
>>>        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
>>>        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
>>>        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
>>>        at org.apache.catalina.core.ContainerBase.access$0(ContainerBase.java:744)
>>>        at org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(ContainerBase.java:144)
>>>        at java.security.AccessController.doPrivileged(Native Method)
>>>        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:738)
>>>        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
>>>        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
>>>        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
>>>        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
>>>        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1206)
>>>        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
>>>        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
>>>        at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1306)
>>>        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570)
>>>        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
>>>        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559)
>>>        at java.lang.Thread.run(Thread.java:619)
>>> Caused by: org.jruby.exceptions.RaiseException: IO error -- rack
>>> Caused by: java.lang.StringIndexOutOfBoundsException: String index out
>>> of range: -1
>>>        at java.lang.String.substring(String.java:1932)
>>>        at java.lang.String.substring(String.java:1905)
>>>        at org.jruby.RubyFile.expand_path(RubyFile.java:1000)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>        at org.jruby.internal.runtime.methods.ReflectedJavaMethod.call(ReflectedJavaMethod.java:141)
>>>        at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:233)
>>>        at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:142)
>>>        at org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:141)
>>>        at org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:336)
>>>        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
>>>        at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
>>>        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
>>>        at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
>>>        at org.jruby.ast.RootNode.interpret(RootNode.java:126)
>>>        at org.jruby.Ruby.loadFile(Ruby.java:2018)
>>>        at org.jruby.runtime.load.ExternalScript.load(ExternalScript.java:58)
>>>        at org.jruby.runtime.load.LoadService.smartLoad(LoadService.java:320)
>>>        at org.jruby.runtime.load.LoadService.require(LoadService.java:346)
>>>        at org.jruby.RubyKernel.require(RubyKernel.java:769)
>>>        at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)
>>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>        at org.jruby.internal.runtime.methods.ReflectedJavaMethod.call(ReflectedJavaMethod.java:141)
>>>        at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:233)
>>>        at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:142)
>>>        at org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:141)
>>>        at org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:336)
>>>        at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
>>>        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
>>>        at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
>>>        at org.jruby.ast.RootNode.interpret(RootNode.java:126)
>>>        at org.jruby.Ruby.loadFile(Ruby.java:2018)
>>>        at org.jruby.runtime.load.ExternalScript.load(ExternalScript.java:58)
>>>        at org.jruby.runtime.load.LoadService.smartLoad(LoadService.java:320)
>>>        at org.jruby.runtime.load.LoadService.require(LoadService.java:346)
>>>        at org.jruby.RubyKernel.require(RubyKernel.java:769)
>>>        at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)
>>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>        at org.jruby.internal.runtime.methods.ReflectedJavaMethod.call(ReflectedJavaMethod.java:141)
>>>        at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:233)
>>>        at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:142)
>>>        at org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:141)
>>>        at org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:336)
>>>        at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
>>>        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
>>>        at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
>>>        at org.jruby.ast.RootNode.interpret(RootNode.java:126)
>>>        at org.jruby.Ruby.loadFile(Ruby.java:2018)
>>>        at org.jruby.runtime.load.ExternalScript.load(ExternalScript.java:58)
>>>        at org.jruby.runtime.load.LoadService.smartLoad(LoadService.java:320)
>>>        at org.jruby.runtime.load.LoadService.require(LoadService.java:346)
>>>        at org.jruby.RubyKernel.require(RubyKernel.java:769)
>>>        at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)
>>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>        at org.jruby.internal.runtime.methods.ReflectedJavaMethod.call(ReflectedJavaMethod.java:141)
>>>        at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:233)
>>>        at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:142)
>>>        at org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall(CallSite.java:141)
>>>        at org.jruby.runtime.CallSite$InlineCachingCallSite.call(CallSite.java:336)
>>>        at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
>>>        at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
>>>        at org.jruby.ast.RootNode.interpret(RootNode.java:126)
>>>        at org.jruby.Ruby.evalScriptlet(Ruby.java:231)
>>>        at org.jruby.rack.DefaultRackApplicationFactory.newRuntime(DefaultRackApplicationFactory.java:82)
>>>        at org.jruby.rack.DefaultRackApplicationFactory.createApplication(DefaultRackApplicationFactory.java:144)
>>>        at org.jruby.rack.DefaultRackApplicationFactory.newErrorApplication(DefaultRackApplicationFactory.java:99)
>>>        at org.jruby.rack.DefaultRackApplicationFactory.init(DefaultRackApplicationFactory.java:39)
>>>        at org.jruby.rack.PoolingRackApplicationFactory.init(PoolingRackApplicationFactory.java:53)
>>>        at org.jruby.rack.RackServletContextListener.contextInitialized(RackServletContextListener.java:38)
>>>        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
>>>        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
>>>        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
>>>        at org.apache.catalina.core.ContainerBase.access$0(ContainerBase.java:744)
>>>        at org.apache.catalina.core.ContainerBase$PrivilegedAddChild.run(ContainerBase.java:144)
>>>        at java.security.AccessController.doPrivileged(Native Method)
>>>        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:738)
>>>        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
>>>        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
>>>        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
>>>        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
>>>        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1206)
>>>        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
>>>        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
>>>        at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1306)
>>>        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570)
>>>        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
>>>        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559)
>>>        at java.lang.Thread.run(Thread.java:619)
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe from this list, please visit:
>>>
>>>    http://xircles.codehaus.org/manage_email
>>>
>>>
>>>
>>>      
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>    http://xircles.codehaus.org/manage_email
>>
>>
>>
>>    
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>
>  


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


 « Return to Thread: "org.jruby.rack.RackInitializationException: IO error -- rack" on Tomcat 5.5