Thank you Tim and Stephan for your response.
As Tim mentioned,
It isn't the jar you think it is. In some instances, there's an API jar that defines the standard interfaces and an implementation jar that actually provides the services themselves. So you might be pulling in an API jar from some other part of the POM and thinking it's the implementation jar.
the JMS Jar that I had mentioned in my post was getting downloaded as a transitive dependency of some other dependent component. I figured this out by opening the pom.xml in STS (Dependencies Hierarchy View) that showed all the transitive dependencies.
Since we dont have control over the external pom. We used the following code to remove that JAR file from the WAR file.
I am positing this so that it would be helpful to some one else.