Connection pool definitions can be frustrating to diagnose.
Most commonly, one of the following is at fault:
1. A pool attribute name is mis-spelled or mis-capitalized. This is the one that usually afflicts me.
2. The JDBC URL is incorrect. Your sample URL spans more than one line, and this is a possible problem if that is actually how you coded it.
3. There is a classpath conflict. The driver jar is in conflict with another driver in the TOMCAT/lib directory, a driver jar was placed in the WAR, or no JAR was supplied.
4. The JNDI pathname is incorrect. Note that the JNDI path in the Context and in the web.xml are relative paths, but the full path is needed by the application code: "java:comp/env/jdbc/MyDS".
5. There is a conflict on the Context definition. An external Context (in TOMCAT/conf/Catalina/localhost) will override an internal (WAR) context.xml. Also, if you re-deploy the webapp as a WAR and the default Tomcat settings are in effect, the WAR would have been "exploded" into an unzipped directory structure of the name name as the WAR within TOMCAT/webapps. But updating (replacing) the WAR file will not update the exploded war! Tomcat will ignore the newer WAR file and continue to use the obsolete WAR directory!
An IDE is no substitute for an Intelligent Developer.