jstl 在tomcat5以及webSphere上的部署

本文是我在第一次使用JSTL中在不同环境下部署中遇到的问题以及解决办法,因为项目赶时间,解决办法可能不是最好的,见笑见笑。
本地环境:
  服务器:tomcat5.0
        JRE 版本:1.5.2
        jstl版本:1.1

远程服务器环境:
        服务器:webSphere 5.0
        jre版本:未知,可能为WebSphere 自带的jdk1.3 


1.在本地tomcat的部署
  在本地部署较为简单,因为使用的tomcat版本较高。中间出现了一个小问题,当我把tomcat5.5的jre设置为jdk1.4.2时,tomcat 无法启动serveice.
  步骤一:将jstl.jar和standard.jar 复制到应用的web-inf/lib目录下。
  步骤二:将所有tld文件复制到应用的web-inf/目录下
  ok,这样就可以使用了,有的文章说要在web.xml里添加taglib部分,其实不必。
2.在webSphere中的部署
  这个过程要艰辛许多,主要是由jsp的版本引起的,jstl1.1是基于jsp2.0的,而websphere的默认jsp是1.2(汗,不知道IBM怎末想的),当时不知道,就按照我怎末做的描述吧
  首先,仿照tomcat下做法做两步。结果如下出现错误:
[05-4-27 17:29:51:547 CST] 60178d9b WebGroup      E SRVE0026E: [Servlet 错误]-[绝对 uri( http://java.sun.com/jsp/sql)无法在用应用程序部署的  web.xml 或 jar 文件中解析]:org.apache.jasper.JasperException: 绝对 uri( http://java.sun.com/jsp/sql)无法在用应用程序部署的  web.xml 或 jar 文件中解析
 原因:无法解析taglib
 解决:将taglib加入到web.xml中,重新打包war,部署后解决
 继续下一步,出现错误:
[05-4-28 9:30:04:031 CST] 60178d9b WebGroup      E SRVE0026E: [Servlet 错误]-[文件 /WEB-INF/tld/c.tld:(行 6,列 19)上的 XML 语法分析错误:文档根元素“taglib”必须与 DOCTYPE 根“null”匹配。]:org.apache.jasper.JasperException: 文件 /WEB-INF/tld/c.tld:(行 6,列 19)上的 XML 语法分析错误:文档根元素“taglib”必须与 DOCTYPE 根“null”匹配。
  原因:这个错误比较奇怪,因为默认的c.tld中没有dtd,后来发现c-01.tld中有dtd
  解决:在web.xml中将改为指向c-01.tld
继续,下一步,出现错误:
java.lang.NoClassDefFoundError: javax/servlet/jsp/el/ELException
  at java.lang.Class.getDeclaredMethods0(Native Method)
  at java.lang.Class.privateGetDeclaredMethods(Class.java:1627)
  at java.lang.Class.getDeclaredMethods(Class.java:1114)
  at java.beans.Introspector$1.run(Introspector.java:1103)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1101)
  at java.beans.Introspector.getTargetMethodInfo(Introspector.java:966)
  at java.beans.Introspector.getBeanInfo(Introspector.java:370)
  at java.beans.Introspector.getBeanInfo(Introspector.java:207)
  at java.beans.Introspector.(Introspector.java:351)
  原因:哦,终于触礁了,这个类确实是在jstl1.1中是没有的,因为jsp2.0中已经把ELException类包括进去了,而我们现在用的是jsp1.2
  解决办法:推倒重来,下载jstl1.0,然后修改web.xml
  这样一来换引起了一个附带问题:jstl1.0中没有fn:这个taglib,所有用到fn:的地方必须用jsp来重写。
  吐阿

你可能感兴趣的:(Jsp&servlet)