I installed the lastest version of JasperServer on my my brand new server based on tomcat6 with jdk6 but on the first page I got the message “Unable to read TLD “META-INF/c.tld” from JAR file…”.
My first try was to downgrade tomcat and jdk to a previous version andit seemed to work. I first thought in a bug somewhere in tomcat and after some time (20 minutes of my precious time!!!!!) my attention got capured by a message in catalina.out “.. file geronimo.jar skiped … contains Servet violation spec….. ”
So JasperServer contains in WEB-INF/lib some servlet libraries?!?! Could be possible it’s not a war made by me so somebody could have made some mistake. Listing the files in WEB-INF/lib i found the entire world of web libraries, included jsp-api. Yes this is the problem!
Tomcat excludes genonimo.jar because it contains Servlet api’s but loads jsp-api located in WEB-INF/lib because no checkis made. No jsp can be compiled because jasper (not jasper reports) compiles from a classloader and jsp-api are located in a different classloader.
Removig jsp-api everything works fine again.
http://blog.ilz.it/?p=3
本文描述了安装最新版JasperServer遇到的问题及解决方案。作者最初在使用基于Tomcat 6和JDK 6的新服务器上部署时,遇到了无法读取TLD文件的错误。通过降级Tomcat和JDK版本暂时解决了问题,但最终发现真正的原因在于JasperServer自带的WEB-INF/lib目录下包含了一些Servlet库,其中包括jsp-api,这导致了与Tomcat自带的Servlet API冲突。移除这些库后,问题得以解决。

被折叠的 条评论
为什么被折叠?



