Hi,

I manually set the TldCache in my context and get rid of the
NullPointerException. But now I'm getting following exception

org.apache.jasper.JasperException: The absolute uri:
> http://tiles.apache.org/tags-tiles cannot be resolved in either web.xml
> or the jar files deployed with this application
> at
> org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:55)
> at
> org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:277)
> at
> org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:75)
> at
> org.apache.jasper.compiler.TagLibraryInfoImpl.generateTldResourcePath(TagLibraryInfoImpl.java:240)
> at
> org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:124)
> at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:411)
> at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:469)
> at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1430)
> at org.apache.jasper.compiler.Parser.parse(Parser.java:139)
> at
> org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227)
> at
> org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
> at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
> at
> org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:570)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
> at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:175)
> at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:80)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
> at
> org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
> at
> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
> at
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
> at
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
> at
> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:64)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
> at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466)
> at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391)
> at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318)
> at
> org.eclipse.equinox.http.servlet.internal.RequestDispatcherAdaptor.forward(RequestDispatcherAdaptor.java:30)
> at
> org.eclipse.equinox.http.helper.ContextPathServletAdaptor$RequestDispatcherAdaptor.forward(ContextPathServletAdaptor.java:362)
> at
> org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:198)
> at
> org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:185)
> at
> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:419)
> at
> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:370)
> at org.wso2.carbon.ui.action.ActionHelper.render(ActionHelper.java:52)
> at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:101)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
> at
> org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
> at
> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
> at
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
> at
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
> at
> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:64)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
> at
> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
> at
> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:49)
> at
> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
> at
> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
> at
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
> at
> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
> at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
> at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
> at
> org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
> at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
> at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:745)


I'm having a custom JarScanner as well. Is this relate to the JarScanner?
Can someone help me out?

Thanks
regards
/Thusitha

On Tue, Mar 17, 2015 at 7:11 PM, Thusitha Thilina Dayaratne <
thusit...@wso2.com> wrote:

> 2015-03-17 15:16 GMT+02:00 Thusitha Thilina Dayaratne <thusit...@wso2.com
> >:
> >
> > Hi
> > >
> > > Hi Violeta
> > >
> > > Hi,
> > >
> > > 2015-03-16 15:07 GMT+02:00 Thusitha Thilina Dayaratne <
> thusit...@wso2.com
> > >:
> > > >
> > > > >>> ERROR {org.apache.catalina.core.ApplicationDispatcher} -
> > > > >>> Servlet.service() for servlet bridgeservlet threw exception
> > > > >>> java.lang.NullPointerException
> > > > >>> at
> > > > >>>
> > > > >
> > > >
> > >
> >
>
> org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:536)
> > > > >>> at
> > > > >
> > org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
> > > > >>> at
> org.apache.jasper.compiler.Parser.parseDirective(Parser.java:469)
> > > > >>> at
> org.apache.jasper.compiler.Parser.parseElements(Parser.java:1430)
> > > > >>> at org.apache.jasper.compiler.Parser.parse(Parser.java:139)
> > > > >
> > > > > <snip/>
> > > > >
> > > > >>>> I can't figure out the reason to get this NullPointerException.
> > > > >>>> Can someone help me out?
> > > > >
> > > > >>> If we knew which version of Tomcat 8 you were using, someone
> could
> > > look
> > > > >>> at the relevant source code to try to figure out what was going
> on.
> > > > > I'm using tomcat version *8.0.20*
> > > >
> > > > >>Browse to the sourcecode of v8.0.20 of tomcat here:
> > > >
> > > > >>     public TldResourcePath getTldResourcePath(String uri) {
> > > > >>     return getOptions().getTldCache().getTldResourcePath(uri);
> > > > >>     }
> > > > Thanks for the quick response
> > > >
> > > > >> Obviously either getOptions() or getTldCache() is returning null.
> > > >
> > > > I debug the code as you suggest and found that getTldCache() is null.
> > > > In the code As I understand there are 2 point which set the
> *tldCache*
> > > >  variable
> > > > one is the setTldCache() method and other is
> > > > public static TldCache getInstance(ServletContext servletContext) {
> > > >
> > > >     if (servletContext == null) {
> > > >         throw new IllegalArgumentException(Localizer.getMessage(
> > > >
> > > "org.apache.jasper.compiler.TldCache.servletContextNull"));
> > > >     }
> > > >     return (TldCache)
> > > > servletContext.getAttribute(SERVLET_CONTEXT_ATTRIBUTE_NAME);
> > > > }
> > >
> > >
> > >
> > > >>If you can attach a debugger try to see whether the code below is
> > invoked:
> > >
> > > >>org.apache.jasper.servlet.JasperInitializer.onStartup(Set<Class<?>>,
> > > >>ServletContext) {
> > > >>.....
> > > >>        context.setAttribute(TldCache.SERVLET_CONTEXT_ATTRIBUTE_NAME,
> > > >>                new TldCache(context,
> > scanner.getUriTldResourcePathMap(),
> > > >>                        scanner.getTldResourcePathTaglibXmlMap()));
> > > >>
> > > >>}
> > > I have checked that as well. But that method didn't get hot when I'm
> > > debugging the source.
> > > what could be the reason?
> >
> > >You wrote that you are running an embedded Tomcat. Is that true?
> > >In Tomcat 8, Jasper initialization is implemented as a standard
> > >ServletContainderInitializer (check Servlet specification).
> > >So you should ensure
> > >that org.apache.jasper.servlet.JasperInitializer.onStartup is invoked
> > >during web app startup
> >
> > Could someone tell me how can I make sure that this method get call
> during
> > the web app startup?
>
> >You didn't tell us whether you are embedding Tomcat or not.
> Thanks for response and I'm Sorry for missing the info in previous mail.
> Yes I'm embedding tomcat version 8.0.20
>
> >If you are embedding it which jar files from Tomcat distribution you are
> >using etc.
> I'm using following tomcat jars
>
>    - tomcat-embed-core
>    - tomcat-embed-jasper
>    - tomcat-websocket-api
>    - tomcat-embed-websocket
>    - tomcat-jasper
>
>
> >You can start debugging
> >with org.apache.catalina.startup.ContextConfig.webConfig()
>
> >- processServletContainerInitializers(sContext);
>
> Thanks
> Regards
> Thusitha
>
> On Tue, Mar 17, 2015 at 6:56 PM, Violeta Georgieva <miles...@gmail.com>
> wrote:
>
>> Hi,
>>
>> 2015-03-17 15:16 GMT+02:00 Thusitha Thilina Dayaratne <thusit...@wso2.com
>> >:
>> >
>> > Hi
>> > >
>> > > Hi Violeta
>> > >
>> > > Hi,
>> > >
>> > > 2015-03-16 15:07 GMT+02:00 Thusitha Thilina Dayaratne <
>> thusit...@wso2.com
>> > >:
>> > > >
>> > > > >>> ERROR {org.apache.catalina.core.ApplicationDispatcher} -
>> > > > >>> Servlet.service() for servlet bridgeservlet threw exception
>> > > > >>> java.lang.NullPointerException
>> > > > >>> at
>> > > > >>>
>> > > > >
>> > > >
>> > >
>> >
>>
>> org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:536)
>> > > > >>> at
>> > > > >
>> > org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
>> > > > >>> at
>> org.apache.jasper.compiler.Parser.parseDirective(Parser.java:469)
>> > > > >>> at
>> org.apache.jasper.compiler.Parser.parseElements(Parser.java:1430)
>> > > > >>> at org.apache.jasper.compiler.Parser.parse(Parser.java:139)
>> > > > >
>> > > > > <snip/>
>> > > > >
>> > > > >>>> I can't figure out the reason to get this NullPointerException.
>> > > > >>>> Can someone help me out?
>> > > > >
>> > > > >>> If we knew which version of Tomcat 8 you were using, someone
>> could
>> > > look
>> > > > >>> at the relevant source code to try to figure out what was going
>> on.
>> > > > > I'm using tomcat version *8.0.20*
>> > > >
>> > > > >>Browse to the sourcecode of v8.0.20 of tomcat here:
>> > > >
>> > > > >>     public TldResourcePath getTldResourcePath(String uri) {
>> > > > >>     return getOptions().getTldCache().getTldResourcePath(uri);
>> > > > >>     }
>> > > > Thanks for the quick response
>> > > >
>> > > > >> Obviously either getOptions() or getTldCache() is returning null.
>> > > >
>> > > > I debug the code as you suggest and found that getTldCache() is
>> null.
>> > > > In the code As I understand there are 2 point which set the
>> *tldCache*
>> > > >  variable
>> > > > one is the setTldCache() method and other is
>> > > > public static TldCache getInstance(ServletContext servletContext) {
>> > > >
>> > > >     if (servletContext == null) {
>> > > >         throw new IllegalArgumentException(Localizer.getMessage(
>> > > >
>> > > "org.apache.jasper.compiler.TldCache.servletContextNull"));
>> > > >     }
>> > > >     return (TldCache)
>> > > > servletContext.getAttribute(SERVLET_CONTEXT_ATTRIBUTE_NAME);
>> > > > }
>> > >
>> > >
>> > >
>> > > >>If you can attach a debugger try to see whether the code below is
>> > invoked:
>> > >
>> > > >>org.apache.jasper.servlet.JasperInitializer.onStartup(Set<Class<?>>,
>> > > >>ServletContext) {
>> > > >>.....
>> > > >>
>> context.setAttribute(TldCache.SERVLET_CONTEXT_ATTRIBUTE_NAME,
>> > > >>                new TldCache(context,
>> > scanner.getUriTldResourcePathMap(),
>> > > >>                        scanner.getTldResourcePathTaglibXmlMap()));
>> > > >>
>> > > >>}
>> > > I have checked that as well. But that method didn't get hot when I'm
>> > > debugging the source.
>> > > what could be the reason?
>> >
>> > >You wrote that you are running an embedded Tomcat. Is that true?
>> > >In Tomcat 8, Jasper initialization is implemented as a standard
>> > >ServletContainderInitializer (check Servlet specification).
>> > >So you should ensure
>> > >that org.apache.jasper.servlet.JasperInitializer.onStartup is invoked
>> > >during web app startup
>> >
>> > Could someone tell me how can I make sure that this method get call
>> during
>> > the web app startup?
>>
>> You didn't tell us whether you are embedding Tomcat or not.
>> If you are embedding it which jar files from Tomcat distribution you are
>> using etc.
>> You can start debugging
>> with org.apache.catalina.startup.ContextConfig.webConfig()
>>
>> - processServletContainerInitializers(sContext);
>>
>> Regards,
>> Violeta
>>
>> >
>> > Best Regards
>> > Thusitha
>> >
>>
>
>
>
> --
> Thusitha Dayaratne
> Software Engineer
> WSO2 Inc. - lean . enterprise . middleware |  wso2.com
>
> Mobile  +94712756809
> Blog      alokayasoya.blogspot.com
> About    http://about.me/thusithathilina
>
>


-- 
Thusitha Dayaratne
Software Engineer
WSO2 Inc. - lean . enterprise . middleware |  wso2.com

Mobile  +94712756809
Blog      alokayasoya.blogspot.com
About    http://about.me/thusithathilina

Reply via email to