I think what is going on is a combination of things: Roller was written using earlier JSP 1.2 specs with different TLD resolution rules and Tomcat 7 is enforcing the JSP 2.1 spec resolution rules more tightly than earlier Tomcats that supported 2.x might have.
If you comment out the taglib declaration in taglibs.jsp, it should work fine. It should find the tld at /WEB-INF/classes/META-INF/tlds/roller.tld by implicit resolution rules. If you prefer to be explicit or you have problems on JSP pages with tags of the form "roller:xxx", you can uncomment the taglib declaration in taglibs.jsp; in this case, however, because "http://www.rollerweblogger.org/tags" is an absolute URI, one must (now) also include a definition in the web.xml.
<jsp-config> <taglib> <taglib-uri>http://www.rollerweblogger.org/tags</taglib-uri> <taglib-location>/WEB-INF/classes/META-INF/tlds/roller.tld</taglib-location> </taglib> </jsp-config> Relevant spec sections are: JSP.7.3.1 through 7.3.6.3 --a. On 6/12/2011 7:29 AM, Guy Katz wrote:
Hi; I am trying to port a roller 3.1 web app to tomcat 7. I get the error as seen below. Note that if I go to the index.jsp file which points to taglibs.jsp which has the statement "<%@ taglib uri="http://www.rollerweblogger.org/tags" prefix="roller" %>" and delete the statement. Everything weems to work ok. Can anyone explain? I did not see anything special I have to do in the tomcat migration guide. Thanks in advance. BTW, had the same behavior on win7 and centos 5.5 (java 6) org.apache.jasper.JasperException: /index.jsp(37,0) The absolute uri: http://www.rollerweblogger.org/tags cannot be resolved in either web.xml or the jar files deployed with this application org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHand ler.java:41) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java :407) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java :88) org.apache.jasper.compiler.Parser.processIncludeDirective(Parser.java:32 4) org.apache.jasper.compiler.Parser.parseIncludeDirective(Parser.java:357) org.apache.jasper.compiler.Parser.parseDirective(Parser.java:467) org.apache.jasper.compiler.Parser.parseElements(Parser.java:1425) org.apache.jasper.compiler.Parser.parse(Parser.java:138) org.apache.jasper.compiler.ParserController.doParse(ParserController.jav a:239) org.apache.jasper.compiler.ParserController.parse(ParserController.java: 102) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:197) org.apache.jasper.compiler.Compiler.compile(Compiler.java:365) org.apache.jasper.compiler.Compiler.compile(Compiler.java:345) org.apache.jasper.compiler.Compiler.compile(Compiler.java:332) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.ja va:594) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja va:342) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.roller.ui.rendering.filters.RequestMappingFilter.doFilter(Req uestMappingFilter.java:140) org.apache.roller.ui.core.filters.InitFilter.doFilter(InitFilter.java:71 ) org.apache.roller.ui.core.filters.PersistenceSessionFilter.doFilter(Pers istenceSessionFilter.java:60) org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(Filt erChainProxy.java:264) org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterS ecurityInterceptor.java:107) org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(Filte rSecurityInterceptor.java:72) org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(Filt erChainProxy.java:274) org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTransl ationFilter.java:110) org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(Filt erChainProxy.java:274) org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter (AnonymousProcessingFilter.java:125) org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(Filt erChainProxy.java:274) org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilt er(SecurityContextHolderAwareRequestFilter.java:81) org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(Filt erChainProxy.java:274) org.acegisecurity.securechannel.ChannelProcessingFilter.doFilter(Channel ProcessingFilter.java:138) org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(Filt erChainProxy.java:274) org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(Reme mberMeProcessingFilter.java:135) org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(Filt erChainProxy.java:274) org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessin gFilter.java:217) org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(Filt erChainProxy.java:274) org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(H ttpSessionContextIntegrationFilter.java:229) org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(Filt erChainProxy.java:274) org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:1 48) org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java :98) org.apache.roller.ui.core.filters.SchemeEnforcementFilter.doFilter(Schem eEnforcementFilter.java:121) org.apache.roller.ui.core.filters.CharEncodingFilter.doFilter(CharEncodi ngFilter.java:81) ############################################################################################## This message is intended only for the designated recipient(s).It may contain confidential or proprietary information. If you are not the designated recipient, you may not review, copy or distribute this message. If you have mistakenly received this message, please notify the sender by a reply e-mail and delete this message. Thank you. ##############################################################################################
