Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Connessione DB in Applicazione Web con Struts

    Ciao a tutti... Spero possiate darmi una mano... Sto imparando ad usare struts e ho una piccola applicazione di esempio...
    Ho un file: database.properties

    PROGGETTO
    ______+-> RESOURCES
    _______________+-> database.properties

    che contiene:
    dbDriver=com.mysql.jdbc.Driver
    dbUrl=jdbc:mysql://localhost:3306/recruiting
    dbUser=root
    dbPassword=root

    E una classe: DataSource ove ho scritto questo codice:

    codice:
    private static final String CONFIG = "database";
    private static final String DRIVER = "dbDriver";
    private static final String URL = "dbUrl";
    private static final String USER = "dbUser";
    private static final String PASSWORD = "dbPassword";
    
    private static void init() {
        System.out.println("Carico le properties");
        try {
            PropertyResourceBundle prb = (PropertyResourceBundle) ResourceBundle.getBundle(CONFIG);
            setDriver(prb.getString(DRIVER));
            setUrl(prb.getString(URL));
            setUser(prb.getString(USER));
            setPassword(prb.getString(PASSWORD));
    			
        } catch (MissingResourceException mre) {
            System.out.println("Errore al caricare le properties");
            System.out.println(mre.toString());
            throw mre;
        }
        System.out.println("Properties caricate");
    }
    Con questo codice sopra, cerco di caricare il file database.properties con la classe
    codice:
    PropertyResourcesBundle
    , e quindi settare dei campi appartenenti questa classe....
    Poi ho fatto un main per testare se il codice vabene, quindi mandandolo in esecuzione come Java Application ha funzionato...

    Andando al dunque il problema è che quando lo uso nel metodo execute di una classe Action (Perchè sto usando Struts ) e lo eseguo sul SERVER (GlassFish) -> mi viene fuori la MissingResourceException ....

    Non so cosa posso fare, non so se ho sbagliato qualcosa, non so se il file di properties lo devo mettere dentro la cartella WebContent o meno.... L'idea è di fare un codice che sia dinamico al caricare questo file di properties senza citare esplicitamente un percorso fisso. Se potete darmi forse qualche bel consiglio sarei contentissimo...

    Ricapitolando, sto usando:
    -> Java EE
    -> Struts
    -> GlassFish Server

    Grazie mille
    Fumandito OK!!!

  2. #2
    Comunque ecco il codice completo della classe:

    DataSourceSingleton

    codice:
    package it.f2.allibo.jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.util.MissingResourceException;
    import java.util.PropertyResourceBundle;
    import java.util.ResourceBundle;
    
        public class DataSourceSingleton {
        private static DataSourceSingleton instance;
        // ----------------------------------------------- //
        private static final String CONFIG = "database";
        private static final String DRIVER = "dbDriver";
        private static final String URL = "dbUrl";
        private static final String USER = "dbUser";
        private static final String PASSWORD = "dbPassword";
        // ----------------------------------------------- //
        private static String driver;
        private static String url;
        private static String user;
        private static String password;
    
        private DataSourceSingleton() {
            init();
        }
    	
        private static void init() {
            System.out.println("Carico le properties");
            try {
                PropertyResourceBundle prb = (PropertyResourceBundle) ResourceBundle.getBundle(CONFIG);
    	setDriver(prb.getString(DRIVER));
    	setUrl(prb.getString(URL));
    	setUser(prb.getString(USER));
    	setPassword(prb.getString(PASSWORD));
    			
            } catch (MissingResourceException mre) {
    	System.out.println("Errore al caricare le properties");
    	System.out.println(mre.toString());
    	throw mre;
            }
            System.out.println("Properties caricate");
        }
    		
        public static DataSourceSingleton getInstance() {
            System.out.println("Ottengo un'istanza di DataSourceSingleton");
            if (instance == null) {
    	System.out.println("Creo nuova istanza");
    	instance = new DataSourceSingleton();
            } else System.out.println("Istanza esistente");
    		
            return instance;
        }
    	
        public synchronized Connection getConnection() {
            Connection con = null;
            try {
    	Class.forName(getDriver()).newInstance();
    	con = DriverManager.getConnection(getUrl(), getUser(), getPassword());
    			
            } catch (SQLException sqle) {
    	System.out.println("Errore bloccante: SQLException");
            } catch (Exception e) {
    	System.out.println("Errore bloccante: Exception");
    	System.out.println(e.toString());
            }
    		
            return con;
        }
    	
        public static String getDriver() {
            return driver;
        }
    	
        public static void setDriver(String driver) {
            DataSourceSingleton.driver = driver;
        }
    	
        public static String getUrl() {
            return url;
        }
    	
        public static void setUrl(String url) {
            DataSourceSingleton.url = url;
        }
    	
        public static String getUser() {
            return user;
        }
    	
        public static void setUser(String user) {
            DataSourceSingleton.user = user;
        }
    	
        public static String getPassword() {
            return password;
        }
    	
        public static void setPassword(String password) {
            DataSourceSingleton.password = password;
        }
    }
    Fumandito OK!!!

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.