I ran into an Error when compile JSP page with taglib using JspC. This happens with the Jasper in Tomcat 4.1.12. The root of the exception is thrown by ServletContext.getResource, the exception is MalformedURLException. After some digging, the following code (in TagLibraryInfoImpl.java) looks dubious, because it intentionally strips out the "/" at the beginning of the path, however the Serlvet spec requires the path to be start with "/". See

http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletContext.html#getResource(java.lang.String)

if(ctxt.getClassLoader() != null &&
URLClassLoader.class.equals(ctxt.getClassLoader().getClass())
&& path.startsWith("/"))
path = path.substring(1,path.length()) ;

So I suggest to change the above lines to the following to guarantee that path is started with "/":
if(ctxt.getClassLoader() != null &&
URLClassLoader.class.equals(ctxt.getClassLoader().getClass())
&& !path.startsWith("/"))
path = "/" +path ;

One thing that I haven't spent much time on is that why JSP pages with Taglib compiled OK in Tomcat, I just assume that it might be executing the different code path. If a regular Jasper developer could examine if the above change makes sense, I would like submit the change to the code base. Since I am not a regular developer, I am just posting to the list for now.


--
Kelly Chen Tumbleweed Communication Corp.
T:650-216-2043 700 Saginaw Drive
F:650-216-2565 Redwood City, CA 94063





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to