IllegalAccessException with Jetty
---------------------------------

                 Key: TILES-267
                 URL: https://issues.apache.org/struts/browse/TILES-267
             Project: Tiles
          Issue Type: Bug
          Components: tiles-core
    Affects Versions: 2.0.5
         Environment: Eclipse, Jetty
            Reporter: Vasiliy Gagin


I'm getting exception when running standalone under Jetty:

org.apache.tiles.TilesException: Unable to retrieve init parameters. Is this 
context a ServletContext, PortletContext, or similar object?
        at 
org.apache.tiles.factory.TilesContainerFactory.getInitParameterMap(TilesContainerFactory.java:352)
        at 
org.apache.tiles.factory.TilesContainerFactory.getFactory(TilesContainerFactory.java:143)
        at 
org.apache.tiles.factory.TilesContainerFactory.getFactory(TilesContainerFactory.java:122)
        at 
org.apache.tiles.web.startup.TilesListener.createContainer(TilesListener.java:88)
        at 
org.apache.tiles.web.startup.TilesListener.contextInitialized(TilesListener.java:57)
        at 
org.mortbay.jetty.servlet.WebApplicationContext.doStart(WebApplicationContext.java:495)
        at org.mortbay.util.Container.start(Container.java:72)
        at org.mortbay.http.HttpServer.doStart(HttpServer.java:708)
        at org.mortbay.util.Container.start(Container.java:72)
        at 
org.eclipse.wst.server.preview.internal.PreviewStarter.run(PreviewStarter.java:116)
        at 
org.eclipse.wst.server.preview.internal.PreviewStarter.main(PreviewStarter.java:39)
Caused by: java.lang.IllegalAccessException: Class 
org.apache.tiles.factory.TilesContainerFactory can not access a member of class 
org.mortbay.jetty.servlet.ServletHandler$Context with modifiers "public"
        at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
        at java.lang.reflect.Method.invoke(Method.java:578)
        at 
org.apache.tiles.factory.TilesContainerFactory.getInitParameterMap(TilesContainerFactory.java:343)
        ... 10 more

I did some digging.
Exception is happening because class 
org.mortbay.jetty.servlet.ServletHandler$Context is package local.
Method returned via context.getClass().getMethod(...) can't be used outside of 
package.
If ServletContext.class.getMethod(...) would be used instead, then it will work.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to