You can define a connection pool in the deployment Context on a per-application basis, but I'm not sure why you think you gain a benefit over using a pool that's shared between webapps.
Connections pulled from a connection pool are supposedly 100% generic, so which connection and what pool shouldn't be making a difference in your applications. In fact, a shared pool is usually going to be better, since it allows you to keep fewer overall connections actually opened to the DBMS server.
The main reasons for app-specific pooling would be if you need to connect to a different database, if the app is so critical that it cannot tolerate being crowded out of the pool by other apps, or if you have something that you want to be able to just drop in as a
unit without hooking it into an existing pool.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.