在网上再三查找,并经过反复试验后,总算是把它配置好了,发现如下几个问题:
1。 Tomcat 5.5.17 的Admin功能很不完善,在JNDI的配置上存在BUG,无法把非全局的DataSource 或ResourceLinks写入%TOMCAT_HOME%/conf/Catalina/localhost/<webname>.xml中;只能手工进行;
2. CLASSPATH配置可能也有问题,Driver包必须放在%TOMCAT_HOME%\common\lib下才能被找到,%TOMCAT_HOME%/shared/lib下不行,甚至在<webname>/WEB-INF/lib下也不能被找到,应该是这个版本的问题,记得以前至少在应用下是能找到的;
总结一下,主要是三个地方要配置:
a. %TOMCAT_HOME%/conf/ 下配置DataSource:    配置server.xml 或 localhost/<webname>.xml
  其中server.xml下配置DataSource则可供所有WEB应用使用,
需要在<GlobalNamingResources> 下加上<Resource>项,这个通过Admin页面也可以完成;然后给需要用到的应用中加上<ResourceLink>即可,但只能手工进行
<ResourceLink name="jdbc/<jndiname>" global="jdbc/<jndiname>" type="javax.sql.DataSource"/>, 放在<Context>下;
如果只想给某个程序用,不想配置Server.xml的话,可以只在localhost/<webname>.xml中加上<Resource>,把<Resource>加到<Context>下
 
       <Resource
    auth="Container"
    description="DB Connection"
    name="jdbc/<jndiname>"
    type="javax.sql.DataSource"
    driverClassName="com.mysql.jdbc.Driver"
    password="<pass>"
    maxIdle="2"
    maxWait="5000"
    username="<user>"
    url="jdbc:mysql://localhost/<dbname>"
    maxActive="4"/>
b. 在应用的web.xml中配置<resource-ref> 
    	<resource-ref>
	  <description>EMCenter Database for WEB Applications</description>
	  <res-ref-name>jdbc/<jndiname></res-ref-name>
	  <res-type>javax.sql.DataSource</res-type>
	  <res-auth>Container</res-auth>
	</resource-ref>
c. 把driver包拷贝到%TOMCAT_HOME%/common/lib/下,应该是最简配置了,有兴趣的可以继续试验,留意看logs/目录下的日志记录能加快进程。其实Admin要是能改进一下最好了,这样太麻烦
另: 有些不解的是,我用的sqltags包(jstl.jar,standard.jar)放在WEB-INF/lib下却能被找到,测试代码如下:
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
	
<%@ taglib uri="
http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="
http://java.sun.com/jsp/jstl/core" prefix="c" %>
<sql:query var="rs" dataSource="jdbc/<jndiname>">
select * from <tablename>
</sql:query>
<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>
  <h2>Results</h2>
  
<c:forEach var="row" items="${rs.rows}">
    ID ${row.id}<br/>
    name ${row.name}<br/>
</c:forEach>
  </body>
</html>