2015-02-20 13:53 GMT+01:00 Marco Semiao <marco.sem...@gmail.com>: > > > 2015-02-20 13:45 GMT+01:00 Marco Semiao <marco.sem...@gmail.com>: > >> Hello, I just use this app : >> >> http://pukkaone.github.io/2010/12/22/jsp-precompile-application-start.html >> >> it's works with tomcat 5,6,7 but not tomcat 8. >> >> Because before, it's possibel to invoque RequestDispatcher into Listener >> >> Now, call RequestDispatcher throw NPE because the Map is empty. >> >> 2015-02-20 13:35 GMT+01:00 Konstantin Kolinko <knst.koli...@gmail.com>: >> >>> 2015-02-19 19:25 GMT+03:00 Marco Semiao <marco.sem...@gmail.com>: >>> > Hello, >>> > >>> > I use on my application a web listener ( ServletContextListener ) that >>> > allows you to compile jsp at startup . >>> > >>> > It does not work on Tomcat 8 in call : >>> > servletContext.getRequestDispatcher ( path); >>> > >>> > >>> > Here is the stack : >>> > >>> > org.apache.catalina.core.ApplicationContext.log Error during mapping >>> > java.lang.NullPointerException >>> > at >>> org.apache.catalina.mapper.Mapper.internalMapWrapper(Mapper.java:842) >>> > at org.apache.catalina.mapper.Mapper.map(Mapper.java:712) >>> > at >>> > >>> org.apache.catalina.core.ApplicationContext.getRequestDispatcher(ApplicationContext.java:503) >>> > at >>> > >>> org.apache.catalina.core.ApplicationContextFacade.getRequestDispatcher(ApplicationContextFacade.java:221) >>> > at >>> > >>> fr.ms.tomcat.servlet.listener.JspCompileRunnable.run(JspCompileRunnable.java:25) >>> > This is occurs when the map contextObjectToContextVersionMap is still >>> null. >>> > >>> > It is enriched at the end of the boot StandardServer so after >>> initializing >>> > listeners . >>> > >>> > Thread [main] (Suspended (breakpoint at line 265 in Mapper)) >>> > owns: MapperListener (id=456) >>> > owns: StandardService (id=457) >>> > owns: Object (id=458) >>> > owns: StandardServer (id=459) >>> > Mapper.addContextVersion(String, Host, String, String, Context, >>> String[], >>> > WebResourceRoot, Collection<WrapperMappingInfo>) line: 265 >>> > MapperListener.registerContext(Context) line: 380 >>> > MapperListener.registerHost(Host) line: 302 >>> > MapperListener.startInternal() line: 110 >>> > MapperListener(LifecycleBase).start() line: 150 >>> > StandardService.startInternal() line: 450 >>> > StandardService(LifecycleBase).start() line: 150 >>> > StandardServer.startInternal() line: 769 >>> > StandardServer(LifecycleBase).start() line: 150 >>> > Catalina.start() line: 625 >>> > NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not >>> > available [native method] >>> > NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 >>> > DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 >>> > Method.invoke(Object, Object...) line: 606 >>> > Bootstrap.start() line: 351 >>> > Bootstrap.main(String[]) line: 485 >>> > >>> > >>> > >>> > it works fine with tomcat 5, 6 and 7. >>> > >>> > >>> > Environnement : >>> > apache- tomcat- 8.0.15 or apache -tomcat- 8.0.18 >>> > Windows 8.1 >>> > Java 7 update 75 >>> > >>> >>> 1. Mailing list rules: >>> http://tomcat.apache.org/lists.html#tomcat-users >>> -> 6. Do not top-post. >>> >>> 2. What event is your listener listening for? >>> >>> If I am understanding you correctly, you are trying to perform a >>> request dispatch on a web application that has not started yet. This >>> is not going to work. The application that has not completed its >>> startup cannot serve requests. >>> >>> The NPE is ugly, an IllegalStateException would be better. >>> From the API specification [1] it looks that the >>> ServletContext.getRequestDispatcher() should return null in this >>> situation, but I think that will be as confusing as the current NPE. >>> >>> If you want the NPE to be changed, it would better to prepare some >>> source code that demonstrates the issue and open an issue in Bugzilla, >>> but at this point I think it is a cosmetic issue and fixing it >>> wouldn't solve your problem. >>> >>> [1] >>> http://docs.oracle.com/javaee/7/api/javax/servlet/ServletContext.html#getRequestDispatcher%28java.lang.String%29 >>> >>> >>> Best regards, >>> Konstantin Kolinko >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org >>> For additional commands, e-mail: dev-h...@tomcat.apache.org >>> >>> >> > > Sorry really sorry for top post :( > > > http://pukkaone.github.io/2010/12/22/jsp-precompile-application-start.html > > it's works with tomcat 5,6,7 but not tomcat 8. > > Because before, it's possibel to invoque RequestDispatcher into Listener > > Now, call RequestDispatcher throw NPE because the Map is empty. >
Before the requestDispatcher is ready into Listener why this limitation into Tomcat 8 ? it wanted ?