Clase: BBDD.java
Código:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class BBDD {
//Atributos
private Connection con;
private Statement st;
private String consulta = "SELECT ip FROM equipos WHERE monitorizar='1'";
private String contar = "SELECT COUNT(ip) FROM equipos WHERE monitorizar='1'";
private ResultSet rs;
//Constructor
public BBDD(){
// Cargar el controlador
try{
Class contr = Class.forName("com.mysql.jdbc.Driver");
System.out.println(contr.toString());
}catch (ClassNotFoundException cnfe){
System.out.println("com.mysql.jdbc.Driver");
}
//Conectar con la BD
try{
//String direccion. Hace referencia a una URL, un recurso de la aplicacion
Connection micon = DriverManager.getConnection("jdbc:mysql://localhost/Comercio","root","");
//Crear objeto Statement
this.con = micon;
Statement st = micon.createStatement();
this.st = st;
ResultSet rs = st.executeQuery (consulta);
// Recorremos el resultado, mientras haya registros para leer, y escribimos el resultado en pantalla.
while (rs.next())
{
System.out.println (rs.getInt (1) + " " + rs.getString (2)+ " " + rs.getDate(3));
}
}catch(SQLException sqle){
System.out.println("Error al establecer la conexion");
}
}
//Métodos
// Ejecuta una consulta de seleccion, devolviendo el objeto "ResultSet"
//con los datos obtenidos en la consulta
public ResultSet selecciona (String consulta) throws SQLException{
return this.st.executeQuery(consulta);
}
public ResultSet elSize (String contar) throws SQLException{
return this.st.executeQuery(contar);
}
//Obtener el ResultSet
public ResultSet getResultSet() throws SQLException{
return this.st.getResultSet();
}
//Obtener el conector
public Connection getCon(){
return this.con;
}
public Connection getIP(){
// NI IDEA DE QUÉ PONER AQUÍ
}
}
y también una clase llamada Ping.java
Código:
import java.io.InputStream;
public class Ping {
public static void main(String[] args)
{
try
{
String ip = BBDD.getIP();
String cadena = "/api/utils/check_fping " + ip;
String[] command = {"sh","-c",cadena};
// Se debería cambiar <<ip>> por cada una de las IP's que salgan del resulSet
final Process process = Runtime.getRuntime().exec(command);
new Thread()
{
public void run()
{
try{
InputStream is = process.getInputStream();
byte[] buffer = new byte[1024];
for(int count = 0; (count = is.read(buffer)) >= 0;)
{
System.out.write(buffer, 0, count);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}.start();
new Thread()
{
public void run()
{
try{
InputStream is = process.getErrorStream();
byte[] buffer = new byte[1024];
for(int count = 0; (count = is.read(buffer)) >= 0;)
{
System.err.write(buffer, 0, count);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}.start();
int returnCode = process.waitFor();
System.out.println("Return code = " + returnCode);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Cualquier pista de por qué me falla la aplicación y cómo solucionarlo sería muy agradecida.
Saludos y gracias de antemano.