Newsgroup: it.comp.software.database
Titolo: [Lungo] Tomcat e sqlserver fanno a pugni :-(

Aiutatemi prima che finisca al manicomio... :-)
Sto cercando di connetermi a un db sqlserver attraverso il connection
pooling di tomcat e jndi. Ho gia' speso moltissime ore a leggermi documenti,
messaggi e articoli a riguardo che non hanno risolto il mio
problema. Quando tento di recuperare la connessione dal codice del mio
servlet viene lanciata questa eccezione:
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of
class '' for connect URL 'null'
<...snip...>
Caused by: java.sql.SQLException: No suitable driver
<...snip...>
Sembra essere un problema molto diffuso perche' ci sono centinaia di
richieste in merito, ma sembra che non ci sia una soluzione!
Nel server.xml di Tomcat (5.0.27 ed ho provato anche versioni 4)  ho
inserito questo:
   <Context path="/HelloWebModule"
    docBase="HelloWebModule"
    debug="1"
    reloadable="true" >
    <Resource name="jdbc/sqlserver" auth="Container"
type="javax.sql.DataSource" />
    <ResourceParams name="jdbc/sqlserver">
     <parameter>
      <name>maxWait</name>
      <value>5000</value>
     </parameter>
     <parameter>
      <name>maxActive</name>
      <value>4</value>
     </parameter>
     <parameter>
      <name>url</name>
<value>jdbc:jtds:sqlserver://localhost:1433;DatabaseName=TestJDBC;SelectMethod=cursor</value>
     </parameter>
     <parameter>
      <name>driverClassName</name>
      <value>net.sourceforge.jtds.jdbc.Driver</value>
     </parameter>
     <parameter>
      <name>maxIdle</name>
      <value>2</value>
     </parameter>
     <parameter>
      <name>username</name>
      <value>dbuser</value>
     </parameter>
     <parameter>
      <name>pwd</name>
      <value></value>
     </parameter>
     <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
     </parameter>
    </ResourceParams>
   </Context>
nel web.xml dell'applicazione ho messo questo:
  <resource-ref>
    <res-ref-name>jdbc/sqlserver</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
e il codice con cui cerco di ottenere la connessione e' questo:
     InitialContext jndiCntx = null;
     Context ctx = null;
       if (dataSource == null) {
         jndiCntx = new InitialContext();
         ctx = (Context) jndiCntx.lookup("java:comp/env");
         dataSource = (javax.sql.DataSource)
             ctx.lookup(jdbc/sqlserver);
       }
       dbConnection = dataSource.getConnection();
Ho provato a usare il driver Microsoft mettendo i rispettivi file .jar nella
common\lib di tomcat e nel classpath dell'applicazione. Non essendoci
riuscito ho anche provato con jtds ma non e' cambiato nulla...
Dove sbaglio? possibile che sia cosi' difficile??
merlinO

Non credo tomcat oppure DBCP centri nulla.
Prova a connetterti al db con il tuo driver jdbc facendo un applicazione di 
prova (public void static main() ..),
usando gli stessi parametri.
Probabilmente quella url non è corretta.
Fai pure il test con il DriverManager, e dimmi che eccezione esce.

 wrote in message 
news:cod1h5$fbs$1...@lacerta.tiscalinet.it...

e' la prima cosa che ho fatto, funziona alla grande :-(
merlinO 

Su
http://sqljunkies.com/Newsgroups/microsoft.public.sqlserver.jdbcdriver/2004/5/2/195772.aspx
consigliano un altro driver da quello che stai usando. 

 consigliano un altro driver da quello che stai usando.
alcuni usano il driver Microsoft, altri quello opensource jdts... io li ho
provati entrambi ma nessuno dei due ha funzionato... credo che il problema
sia di tomcat, ma nella documentazione come risolverlo non c'e' scritto :-(
lascero' perdere il collegamento con il dbcp, lo faccio da codice e amen...
grazie
merlino
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/