Newsgroup: it.comp.java
Titolo: Info path connector MySql

 
          Salve,
ho scritto un programma che mi chiama i driver del mysql:
try {
Class.forName ( "org.gjt.mm.mysql.Driver" );
prova.setText("MySQL Driver Found");
} catch ( java.lang.ClassNotFoundException e ) {
prova.setText("MySQL JDBC Driver not found ...");
}
Ho installato Apache sul PC.
Quando vado a leggere la mia pagina html attraverso il server non mi trova
il driver.
Volevo sapere in questo caso il file "mysql-connector-java-3.1.6-bin.jar"
dove vą inserito?
Lo devo precompilare in qualhe modo nella fase iniziale?
Oppure esiste qualche path da creare sul server?
Grazie
xoooox
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 dove và inserito?
Ad occhio stai utilizzando il nome di classe del driver vecchio. Preso
dalla documentazione online:
http://dev.mysql.com/doc/connector/j/en/cj-registering-with-driver-manager.html
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
// Notice, do not import com.mysql.jdbc.*
// or you will have problems!
public class LoadDriver {
     public static void main(String[] args) {
         try {
             // The newInstance() call is a work around for some
             // broken Java implementations
             Class.forName("com.mysql.jdbc.Driver").newInstance();
         } catch (Exception ex) {
             // handle the error
         }
}
Gaetano


Ciao,
il problema non è la chiamata al driver.
Infatti se metto il file connector sotto la directory:
JAVA_HOME\jre\lib\ext
và bene per prove in locale.
Però dato che utilizzo un applicazione server, quando leggo da remoto il
file
non riesce a trovarmi il connector.
Penso che bisognerebbe inserire il connector
in qualche path del server o costruire una struttura dove risiede la mia
applicazione.
Il server che utilizzo è la versione base di Apache. Mica sapi se devo
installare qualche
altra cosa?


 altra cosa?
non mi risulta che con apache tu possa aprire file jsp senza un application
server, tipo tomcat per esempio.
scaricatelo nel sito di jakarta, non ricordo il link.
tomcat funziona anche da web server, quindi apache non serve , per lo meno
per fare le prime prove.
installatelo, e guardati gli esempi (localhost:8080).
il connector ti conviene metterlo nella directory Tomcat 5.0.xx\shared\lib ,
cosě ti funziona per tutte le tue applicazioni


Ci ho provato...
ho installato il tomcat
ho in serito il connector in Tomcat 5.0.xx\shared\lib
perň il driver ancora non me lo trova....
Perň ho installato la versione jakarta-tomcat-4.1.31
Devo installare per forza la 5 ?
grazie



io ho tomcat5.0.28 e mi funziona, con il 4.1 mi ricordo che lo mettevo sotto
WEB-INF\lib
prova a fare così :
1) metti il file mysql-connector-java-3.0.15-ga-bin.jar (o quello che usi)
nella directory webapps\examples\WEB-INF\lib
2) copia e incolla il codice sottostante in un file sotto la directory
examples , chiamalo pippo.jsp, apri IE e vai alla pagina
http://localhost:8080/examples/pippo.jsp
dovrebbe funzionare (a me funziona)
ciao
<html>
<head>
<title>esempio jsp jdbc</title>
</head>
<body>
tabelle del database mysql
<%@ page language = "java" import="java.sql.*" %>
<%
String url = "jdbc:mysql://localhost:3306/mysql?user=root&password=";
Connection con=null;
String createString;
createString = "show tables";
Statement stmt;
try { Class.forName("com.mysql.jdbc.Driver").newInstance(); }
catch (Exception E) { out.println("1 "+E.getMessage()); }
try {
    con = DriverManager.getConnection(url);
    stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery(createString);
    out.println("<table width=100 border=2>");
    while (rs.next())
          { out.println("<tr><td>"+rs.getString(1)+"</td></tr>"); }
    out.println("</table>");
    rs.close();
   stmt.close();
   }
    catch(SQLException ex)  { out.println("SQLException: " +
ex.getMessage()); }
    finally {
        try {  if (con != null) { con.close(); } }
        catch (SQLException sqle) { out.println("5"+sqle.getMessage()); }
        }
%>
</body>
</html>
P.S. come ultima possibilità prova a mettere il connector sotto common/lib


Ciao,
per prima cosa grazie di tutto :)
Ho installato la versione 5 del tomcat.
Sotto shared\lib ho messo il connector e tutto va bene.
Ho eseguito il file index.jsp che conteneva solo la chiamata
Class.forName("com.mysql.jdbc.Driver").newInstance();
e tutto và bene.
Però ho provato pure il mio vecchio file index.html che chiamava un
prova.class
dove è inserita solo la chiamata al driver e non riesce a caricarmi
l'applet.
Se lancio il file html sul mio pc funziona, se lo faccio attraverso il
server no.
Che tu sappia ci sono problemi con i file html nella versinoe 5 del tomcat?
Grazie


 Che tu sappia ci sono problemi con i file html nella versinoe 5 del
tomcat?
attenzione , le applet con apache e tomcat non centrano nulla.
mentre le pagine jsp sono in pratica dei programmi misto-html-java che
vengono compilati ed eseguiti SUL SERVER, e quindi hanno bisogno SUL SERVER
di un compilatore, il jdk, e di un application server, cioè tomcat,  e il
risultato di questo programma viene tornato al client come pagina html, le
applet sono dei programmi che vengono scaricati con la pagina HTML che li
contiene ed eseguiti SUL CLIENT, dalla jvm del browser.
quindi l'applet non funzionerà se
1) la jvm usata dal tuo browser non ha una jvm
2) ce l'ha, ma come nel caso di IE è ferma alla versione 1.1.8 mi pare,
quindi non supporta tutta una serie di librerie, tipo swing tanto per
intendersi.
3) ha una jvm adatta ma non ha il connector, nel caso sia necessaria una
connessione a mysql.
francamente non ho idea di dove mettere il connector in questo caso, a meno
che tu non pensi di scaricarlo insieme all'applet, ma è una ipotesi da
scartare secondo me, ci voule troppo tempo, e non so neanche se sia
possibile poi connettersi ad un DB (locale o remoto chessia) a causa del
rigido sistema di sicurezza cui sono sottoposte le applet (sandbox).
attenzione, non dico che non sia possibile, dico che non so se sia
possibile, ma in ogni caso non è assolutamente (secondo me) una soluzione
funzionale.
le applet, come tecnologia, secondo me vanno a morire, a favore di jsp,
quindi ti consiglierei di convertirle in jsp.
spero di averti un po chiarito le idee
ciao


scusami, ma non avevo letto bene la tua risposta.
se ti funziona lanciandolo dal tuo pc, e da server no, l'unica cosa che mi
viene in mente è che lanciandola dal tuo pc il connnector sia sulla stessa
directory dell'appet, che quindi lo vede, mentre scaricandolo da server
l'applet va a finire nella directory dei temporary file di internet e quindi
non lo vede.
di sicuro non è un problema di apache e tomcat.
l'unica cosa che mi viene in mente è di provare a mettere il connector
nella directory
C:\Programmi\Java\j2re1.4.1_02\lib\ext, nel caso la jvm usata dal tuo
browser sia questa.
però anche se funzionasse, funzionerebbe solo sul tuo pc.
oppure, come suggerivo sull'altra e-mail, scaricare il connector con
l'applet, in modo che entrambi finiscano sulla stessa directory.
ma è una soluzione che mi fa rabbrividire (e bisogna poi vedere se
funziona), insisto nel consigliarti di usare le jsp, è una soluzione
semplice e robusta.
ciao