Ciao a tutti ho risolto il problema,
la causa di tutto era il classpath che andava settato nel file setclasspath.bat nella bin di Tomcat, di seguito descrivo il tutto magari qualcuno potrebbe averne bisogno:
file server.xml
[CODE ]
<Resource name="jdbc/test_db" auth="Container" type="javax.sql.DataSource"></Resource>
<ResourceParams name="jdbc/test_db">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFact ory</value>
</parameter>
<parameter><name>username</name><value>username</value></parameter>
<parameter><name>password</name><value>password</value></parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDrive r</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://serverName
ort;DatabaseName=DBName</value>
</parameter>
<parameter><name>removeAbandoned</name><value>true</value></parameter>
<parameter><name>removeAbandonedTimeout</name><value>60</value></parameter>
<parameter><name>maxActive</name><value>100</value></parameter>
<parameter><name>maxIdle</name><value>30</value></parameter>
<parameter><name>maxWait</name><value>-1</value></parameter>
</ResourceParams>
[/CODE]
file web.xml
codice:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/test_db</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
provapool.jsp
codice:
<%@ page language="java"
import="java.util.*,java.sql.*,javax.sql.*,javax.naming.*" %>
<%
Connection db_con = null;
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/test_db");
if ( ds != null ) {
try {
// This is the place, where the script hangs, when the
// database-server is not avaible
db_con = ds.getConnection();
} catch ( SQLException se ) {
System.out.println("Exception while connecting to db! (" +
se.getMessage() + ")");
se.printStackTrace();
} finally {
try { db_con.close(); } catch ( SQLException se ) {};
}
}
%>
settare i jar di mssql in una variabile d'ambiente es:
codice:
CLASSPATH=.;C:\Programmi\driverSql\msbase.jar;C:\Programmi\driverSql\mssqlserver.jar;C:\Programmi\driverSql\msutil.jar
aggiungere la variabile nel file setclasspath.bat
codice:
set CLASSPATH=%CLASSPATH%;%JAVA_HOME%\lib\tools.jar