Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: javabean e driver

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    javabean e driver

    ciao a tutti,
    utilizzo eclipse juno for java EE come IDE.

    In un progetto web dinamico, ho fatto una semplice classe Db.java nel pakage classi (dentro la cartella src) che mi esegue la connessione ad un database MySQL utilizzando mysql-connector-java-5.1.22-bin.jar

    Questa classe (postata di seguito) la vorrei usare nelle mie pagine .jsp ma il server Tomcat sulla riga dello useBean mi da sistematicamente il seguente errore:

    org.apache.jasper.JasperException: /pagina3.jsp(14,2) The value for the useBean class attribute classi.Utenti is invalid.

    Non trova la classe!

    posto un estratto del codice della pagina.jsp e la classe db.java

    Ovviamente ho incluso mysql-connector-java-5.1.22-bin.jar nella libreria del progetto

    Premetto che per quanto ne sappia io eclipse compila al volo e quindi non è necessario il .class della mia classe Db.java

    pagina.jsp


    Codice PHP:

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        
    pageEncoding="ISO-8859-1"%>

    <%@ 
    page import="java.sql.*" %>

    <!
    DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <
    html>
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <
    title>Insert title here</title>
    </
    head>
    <
    body>

         <
    jsp:useBean  id="mydb" scope="session" class="classi.Db" />

        <%
            
    Connection con mydb.getConnessione();
                    
    // ecc..
            
    %>
    ... 
    premetto che l'ide riconosce il metodo getConnessione (quando digito mydb. vengono visualizzati i metodi della classe)

    ecco il codice della classe Db.java
    ovviamente il costruttore è senza parametri e per ogni variabile di istanza c'è il suo set e get:


    Codice PHP:

    package classi
    ;

    import java.sql.*;


    public class 
    Db {
        private 
    Connection connect;

        
    Db() throws SQLException
        
    {
            
    String server "localhost";
            
    String nomeDatabase "miodb";
            
    String userName="root";
            
    String password="root";
            
            
    // Carica il driver mySQL (che deve essere raggiungibile nel percorso indicato com/mysql/jdbc
            
    try {
            Class.
    forName("com.mysql.jdbc.Driver");
                
                
    connect DriverManager.getConnection("jdbc:mysql://" server "/" nomeDatabase +"?" "user="+userName+"&password="+password); 
            } catch (
    ClassNotFoundException e) {
                
    // TODO Auto-generated catch block
                
    e.printStackTrace();
            }

           
            
        }

        public 
    Connection getConnessione()
        {
            return 
    connect;
        }
        
        public 
    void setConnessione(Connection c)
        {    
            
    connect c;
        }
        
      public 
    void close() {
        try {
          if (
    connect != null) {
            
    connect.close();
          }
        } catch (
    Exception e) {
            
    System.out.println(e);
        }
      }


    un pò lungo ma semplice e credo anche di utilità se riusciamo a farlo funzionare.

    Grazie
    Guidino

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    scusate ho postato l'errore sbagliato, l'errore che da Tomcat è:

    org.apache.jasper.JasperException: /utenti.jsp(14,2) The value for the useBean class attribute classi.Db is invalid.

    inoltre ho dimenticato di dire che se copio il codice che esegue la connessione dalla classe Db nella pagina jsp funziona, quindi il problema è far caricare la classe Db
    Guidino

  3. #3

    Moderazione

    Java ha una sezione apposita, sposto.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Premetto che per quanto ne sappia io eclipse compila al volo e quindi non è necessario il .class della mia classe Db.java
    Ehm... magari Eclipse compila al volo se fai il "Run" del progetto (cosa che, per questo tipo di progetto, sconsiglio caldamente)... ma se tenti di avviare il progetto in separata sede (solo su Tomcat, dopo il deploy), è necessario avere il compilato... Tomcat, del sorgente, se ne fa proprio nulla...

    Il mio consiglio è sempre lo stesso... segui un ordine ben preciso di cose da fare:

    1) Compila il progetto ed ottieni il WAR
    2) Fai il deploy del WAR su Tomcat
    3) Avvia l'applicazione usando un browser

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    Grazie per la risposta!

    ho creato il file. war

    come faccio a fare il deploy del WAR su Tomcat?
    e come Avvio l'applicazione usando un browser?

    Grazie
    Guidino

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Sono cose che si dovrebbero conoscere, visto che si tratta delle basi per poter "provare" un'applicazione...

    Il deploy consiste nell'inserimento dell'applicazione su Tomcat... e come fai altrimenti a farla girare?
    http://tomcat.apache.org/tomcat-6.0-...yer-howto.html

    Per l'avvio... mi sembra ovvio che dovrai scrivere nel browser l'indirizzo della tua applicazione... che dipende da come è installato Tomcat, da come si chiama (o, comunque, qual è l'indirizzo IP) il PC dove è installato e dal nome della tua applicazione, dalle risorse che espone, ecc.

    Solitamente Tomcat viene installato in modo da rispondere sulla porta 8080 della macchina. Quindi, supponendo che la macchina abbia indirizzo IP 192.168.1.10

    http://192.168.1.10:8080/NomeDellaTuaApplicazione


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    non mi sono spiegato,
    conosco come avviare una pagina.jsp.

    Da eclipse lancio la pagina.jsp con run e scelgo il server tomcat.

    la pagina.jsp però mi da errore e quindi ho creato il file .war come mi hai indicato tu

    come faccio ad usare il file.war?

    Grazie
    Guidino

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da guidino
    non mi sono spiegato,
    conosco come avviare una pagina.jsp.

    Da eclipse lancio la pagina.jsp con run e scelgo il server tomcat.
    Questo significa eseguire una WebApp dall'interno dell'IDE che si usa per programmare... come se EBay, per far partire il suo sito, avesse premuto "Run" in Eclipse e ora ci fosse Eclipse che gira a vuoto per far andare EBay...

    la pagina.jsp però mi da errore e quindi ho creato il file .war come mi hai indicato tu
    Il WAR è il risultato del programmatore: il programmatore scrive una applicazione (nel tuo caso, una WebApp), quindi la compila e la dà a qualcuno che la faccia funzionare... il risultato della compilazione (in termini molto generici) è il WAR, che va dato a qualcuno (tipo a Tomcat), perchè lo faccia funzionare.

    come faccio ad usare il file.war?

    Grazie
    Ti ho linkato la pagina che spiega il deploy del WAR, si tratta di accedere alla parte di amministrazione di Tomcat e dargli in pasto il WAR. E' spiegato tutto nel link che ho messo sopra.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    ciao LeleFT,
    ti ringrazio delle indicazioni che mi hai dati.

    Ho trovato il modo di utilizzare i javabean da eclipse senza bisogno di fare il .war e neanche senza bisogno del .class
    Semplicemente ho modificato la modalità di stabilire la connessione al database mysql. Credo che il problema fosse quello.

    il . war può essere fatto nella fase finale ma non durante lo sviluppo dell'applicazione (si perde troppo tempo)

    Grazie
    Guidino

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da guidino
    il . war può essere fatto nella fase finale ma non durante lo sviluppo dell'applicazione (si perde troppo tempo)
    Ti accorgerai molto presto che la "perdita di tempo" (come la chiami tu), sarà ampiamente ricompensata in fase di deploy... testare l'applicazione in un ambiente separato da quello di sviluppo è sempre la cosa migliore. O meglio, non capita praticamente mai che le applicazioni testate solo dall'ambiente di sviluppo funzionino al primo colpo in ambiente esterno (ma nemmeno al secondo e terzo)... ti auguro, comunque, di non incappare in questa casistica... non è mai successo, ma buona fortuna.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.