Jede Webanwendung hat ihren eigenen Classloader (der sie isoliert). Wenn Sie die Class.forName()-Methode aufrufen, gibt es einen statischen Block, der versucht, die gemeinsam genutzte Bibliothek (DLL-Datei) zu laden. Ihre beiden Web-Apps versuchen also, die gemeinsam genutzte Bibliothek zu laden, daher die Fehlermeldung bei der zweiten versucht zu laden.
Das JDBC-JAR, das Sie für sqlserver haben, sollte nicht mehr mit Ihren Wars gebündelt sein, sondern auf tomcat 7.0/lib
verschoben werden Ordner und kopieren Sie die sqljdbc_auth.dll in den Ordner tomcat/bin - auf diese Weise befindet sie sich im übergeordneten Classloader von Tomcat und die Klasse wird nur einmal geladen.
|----------------------------------|
| sqljdbc*.jar --> tomcat*/lib |
|----------------------------------|
| sqljdbc_auth.dll --> tomcat*/bin |
|----------------------------------|