to change the way files are read using load/require. Perhaps a
>
> - Charlie
>
> Michael Pitman wrote:
>>
>> Well, answering my own question here in the hopes of helping others.
>>
>> It seems that the default security policies for the tomcat6 package for
>> Ubuntu don't allow newly deployed applications to read their own files!
>>
>> I edited /etc/tomcat6/policy.d/50local.policy to allow all permissions
>> on the deployment directory, and everything started working. The entry I
>> added was:
>>
>> grant codeBase "file:${catalina.base}/webapps/-" {
>> permission java.security.AllPermission;
>> };
>>
>>
>> The stack trace below showing a problem with require was a bit of a red
>> herring - there's a boolean "isAbsoluteWithFilePrefix" defined at the
>> top of RubyFile.expand_path(), then referenced at the end of the method.
>> In the code in the middle, the prefix gets stripped if you don't have
>> the appropriate permissions (actually it's if System.getParameter()
>> throws a security exception). The resulting file path doesn't have the
>> file: prefix any more, so throws the exception below.
>>
>> It would probably be nice to issue a warning if someone is trying to run
>> without sufficient security (ie Ruby.isSecurityRestricted()). I'm sure
>> that some things run OK, so it's not worth just aborting, but my app
>> really didn't seem to like it...
>>
>> Regards,
>>
>> Michael
>>
>>
>> Michael Pitman wrote:
>>>
>>> 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>>>
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> 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>
>
>