Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/09/2015, 10:37
kingmike
 
Fecha de Ingreso: septiembre-2015
Mensajes: 4
Antigüedad: 8 años, 7 meses
Puntos: 0
Pregunta Fallo leer archivo txt applet

Buenas! Les expongo mi problema:

Tengo un Applet formado por un JApplet form (Formulario) y una clase de java (Conexion).
La finalidad de este es tomar datos de entrada, consultar a la base de datos y mostrar la información requerida.

Mi problema viene a la hora de leer un archivo txt que esta situado en un servidor, archivo al que accedo mediante una URL (http://www.******.com/varios/Conexion.txt). En dicho archivo se encuentra la configuración necesaria para realizar la conexión a la base de datos.

El caso es que el Applet lee bien todos los txt con los que he probado menos este que es el que necesito. Desde NetBeans lo lee bien, el problema es cuando subo el Applet al servidor me lee un archivo que ya no existe en vez de leer el nuevo.

Codigo de Formulario:

Código:
public class Formulario extends javax.swing.JApplet {

    Conexion co;
    String FechaIni, FechaFi;

    @Override
    public void init() {
        LOOK AND FELL SETTING CODE (OPTIONAL)

        /* Create and display the applet */
        try {
            java.awt.EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    initComponents();
                    setSize(492, 355);
                    Tabla.setAutoCreateRowSorter(true);
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

	@SuppressWarnings("unchecked")
	GENERATED CODE                      

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try {
            DateFormat format = new SimpleDateFormat("dd-MM-yyyy");
            DateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
            if (FechaInicial.getText().isEmpty() || FechaFinal.getText().isEmpty()) {
                JOptionPane.showMessageDialog(null, "Rellene antes de consultar");
            } else if (FechaInicial.getText().matches("(0[1-9]|[1-2][0-9]|3[0-1])-(0[1-9]|1[0-2])-[0-9]{4}") || FechaFinal.getText().matches("(0[1-9]|[1-2][0-9]|3[0-1])-(0[1-9]|1[0-2])-[0-9]{4}")) {
                String dateini = FechaInicial.getText();
                Date Dateini = format.parse(dateini);
                FechaIni = formato.format(Dateini);

                String datefi = FechaFinal.getText();
                Date Datefi = format.parse(datefi);
                FechaFi = formato.format(Datefi);

                RellenaTabla(FechaIni, FechaFi);
            } else {
                JOptionPane.showMessageDialog(null, "Formato no valido. El formato es: dd-mm-yyyy");
                FechaInicial.setText("");
                FechaFinal.setText("");
            }
        } catch (HeadlessException headlessException) {
            JOptionPane.showMessageDialog(null, "Error al consultar datos");
        } catch (ParseException ex) {
            JOptionPane.showMessageDialog(null, "Error al convertir String a Date");
        }
    }                                        

    private void FechaInicialMouseClicked(java.awt.event.MouseEvent evt) {                                          
        FechaInicial.setText("");
    }                                         

    private void FechaFinalMouseClicked(java.awt.event.MouseEvent evt) {                                        
        FechaFinal.setText("");
    }                                       

    public JTextField getFechaFinal() {
        return FechaFinal;
    }

    public void setFechaFinal(JTextField FechaFinal) {
        this.FechaFinal = FechaFinal;
    }

    public JTextField getFechaInicial() {
        return FechaInicial;
    }

    public void setFechaInicial(JTextField FechaInicial) {
        this.FechaInicial = FechaInicial;
    }

    public JTable getTabla() {
        return Tabla;
    }

    public void setTabla(JTable Tabla) {
        this.Tabla = Tabla;
    }


    // Variables declaration - do not modify                     
    private javax.swing.JTextField FechaFinal;
    private javax.swing.JTextField FechaInicial;
    private javax.swing.JTable Tabla;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JScrollPane jScrollPane1;
    // End of variables declaration                   

    public void RellenaTabla(String FechaIni, String FechaFi) {
        co = new Conexion();
        try {
            ResultSet rs = co.getAnulaciones(FechaIni, FechaFi);

            ((DefaultTableModel) getTabla().getModel()).setRowCount(0);
            while (rs.next()) {
                Object new_row[] = {rs.getString("Of.Productora"), rs.getString("Familia"), rs.getInt("Anuladas")};
                ((DefaultTableModel) getTabla().getModel()).addRow(new_row);
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Error al rellenar la tabla");
        }
        co.Close();
    }

}
Codigo de Conexion:

Código:
public class Conexion {

    private static final String driver = "com.mysql.jdbc.Driver";
    BufferedReader br = null;
    ArrayList lineas = new ArrayList();

    Connection conexion = null;
    Statement statement;

    public Conexion() {
        try {
            LeerFichero();
            _initDB();
        } catch (InstantiationException ex) {
            Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void Close() {
        try {
            conexion.close();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "ERROR: Imposible de cerrar la conexi�n con la base de datos.", "Error con la Base de Datos", JOptionPane.ERROR_MESSAGE);
        }
    }

<<<Aqui van los ResultSet con las consultas, los quito por falta de caracteres>>>

    private void _initDB() throws InstantiationException, IllegalAccessException {
        try {
            Class.forName(driver).newInstance();
        } catch (ClassNotFoundException ex) {
            JOptionPane.showMessageDialog(null, "ERROR 1: Imposible de cargar el driver de conexi�n para la base de datos.", "Error de Conexi�n", JOptionPane.ERROR_MESSAGE);
        }
        try {

            String host2 = getServidor();
            String basedatos = getBBDD();
            String usuarioDB = getUsuario();
            String passwordDB = comprobarcontrasena();
            String servidor = host2 + "/" + basedatos;

            if (servidor != null || usuarioDB != null || passwordDB != null) {
                conexion = DriverManager.getConnection("jdbc:mysql://" + servidor + "?user=" + usuarioDB + "&password=" + passwordDB + "&useUnicode=true&characterEncoding=UTF-8");
            } else {
                JOptionPane.showMessageDialog(null, "Error al hacer conexion, valores nulos");
            }
        } catch (Exception e) {
            String error = e.getMessage();
            JOptionPane.showMessageDialog(null, error);
            JOptionPane.showMessageDialog(null, "ERROR 2: Imposible de conectar con la base de datos seleccionada.", "Error de Conexi�n", JOptionPane.ERROR_MESSAGE);
        }
    }

    public final void LeerFichero() {

        try {
            String Servidor = "http://www.******.com/varios/Conexion.txt";

            URL url = new URL(Servidor);
            br = new BufferedReader(new InputStreamReader(url.openStream()));

            String linea;
            while ((linea = br.readLine()) != null) {
            	lineas.add(linea);
            }

            br.close();

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Error al leer fichero");
            e.printStackTrace();
        }
    }

    public String getServidor() {
        try {
            String servidor = (String) lineas.get(0);
            return servidor;
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Imposible leer servidor del fichero");
            return null;
        }
    }

    public String getUsuario() {
        try {
            String usuario = (String) lineas.get(2);
            return usuario;
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Imposible leer usuario del fichero");
            return null;
        }
    }

    public String comprobarcontrasena() {
        if (getContrasena() == null) {
            String passwordDB = "";
            return passwordDB;
        } else if (getContrasena() != null) {
            String passwordDB = getContrasena();
            return passwordDB;
        } else {
            JOptionPane.showMessageDialog(null, "Error al comprobar la contraseña del fichero");
            return null;
        }
    }

    public String getContrasena() {
        try {
            String contraseña = (String) lineas.get(3);
            return contraseña;
        } catch (Exception e) {
            return null;
        }
    }

    public String getBBDD() {
        try {
            String base = (String) lineas.get(1);
            return base;
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Imposible leer la base de datos del fichero");
            return null;
        }
    }
}
Contenido archivo Conexion.txt:

localhost =>Servidor
joomla =>Base de datos
root =>Usuario
=>Contraseña (En este caso nula)

Muchas gracias de antemano :D