Personally, I'd keep JSTL/Standard in WEB-INF/lib and Xerces/Xalan in endorsed. Unless I needed an app-specific version of the XML libs, in which case I'd need them in WEB-INF/lib. I wouldn't recommend dumping everything in endorsed, or some other directory that a shared classloader can access, since it can cause problems for certain frameworks (e.g. Struts). I'm not sure if JSTL/Standard suffers from this problem. So, I guess my second choice would be to dump everything in WEB-INF/lib.
Not exactly sure what's going on with that NPE. Can you post some example code that triggers it? Quoting David Wall <[EMAIL PROTECTED]>: > Thanks. The comments below did it for me. However, I still had some JAR > file location issues (tomcat's common/endorsed for the webapps > WEB-INF/lib). > > Do most people put the XERCES, XALAN, JSTL/STANDARD jars in the endorsed > location or do they just keep it with their webapps? Right now, I seem to > be working with XERCES and XALAN in endorsed, and the JSTL/STANDARD in my > WEB-INF/lib. Obviously, I'd prefer to have everything in the WEB-INF/lib > since it would be packaged nicely together, or I'd prefer all these > "non-app" JARs to be in the endorsed area. > > Even though everything appeared okay with my initial EL, I did note the > following exception in catalina.log: > > java.lang.NullPointerException > at > org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:557) > at > org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:487) > at > org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:5 > 50) > at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2 > 91) > at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301) > at > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application > FilterChain.java:284) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh > ain.java:204) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja > va:257) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex > t.java:151) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564) > at > org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContext > Valve.java:245) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja > va:199) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex > t.java:151) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase > .java:587) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex > t.java:149) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:195 > ) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex > t.java:151) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164 > ) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex > t.java:149) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:578) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex > t.java:149) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java > :156) > at > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex > t.java:151) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972) > at > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne > ction(Http11Protocol.java:700) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav > a:683) > at java.lang.Thread.run(Thread.java:534) > > > David > > > > Instead of: > > > > <!DOCTYPE web-app > > PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" > > "http://java.sun.com/dtd/web-app_2_3.dtd"> > > <web-app> > > ... > > </web-app> > > > > Use: > > > > <web-app xmlns="http://java.sun.com/xml/ns/j2ee" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > > xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" > > version="2.4"> > > ... > > </web-app> > > > > Get rid of the <taglib> element and the TLD file, as of JSP 1.2 you don't > need > > them for packaged taglibs. Just use the proper URI in the taglib > directive > in > > your JSP: > > > > <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -- Kris Schneider <mailto:[EMAIL PROTECTED]> D.O.Tech <http://www.dotech.com/> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
