>>> 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);
}

 from this 2 methods I couldn't find any point that setTldCache() is been
used. So I think getInstance() is the method that is been used.

Should I manually set the value o tldCache?

Thanks
Regards
/Thusitha

Reply via email to