Buenas noches, les traigo un problemon.. para mi por lo menos, por que no le he encontrado solucion. Estoy diseñando un formulario donde se envian la info a un servlet y este a su vez a la base de datos, el problema es que no lo envia y no se por que les pongo el codigo y una advertencias que me tira el glassfish:
Codigo:
Código Java:
Ver originalpackage Codigo;
import BD.BaseDatos;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Chris
*/
@WebServlet(name = "InsertarCliente", urlPatterns = {"/InsertarCliente"})
public class InsertarCliente extends HttpServlet {
/**
* Processes requests for both HTTP
* <code>GET</code> and
* <code>POST</code> methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
response.setContentType("text/html;charset=UTF-8");
vSQL ="INSERT INTO UTH.CLIENTES"
+"(NOMBRESCLIENTE, APELLIDOSCLIENTE, EDADCLIENTE, SEXOCLIENTE, DIRECCIONCLIENTE, TELEFONOCLIENTE, USUARIOCLIENTE, CONTRASEÑACLIENTE)"
+"VALUES(?,?,?,?,?,?,?,?)";
try {
BaseDatos.AbrirConexionDB();
SentenciaDB = BaseDatos.Conexion.prepareStatement(vSQL);
SentenciaDB.setString(2,request.getParameter("NombresCliente"));
SentenciaDB.setString(3,request.getParameter("ApellidosCliente"));
SentenciaDB.
setInt(4,
Integer.
parseInt(request.
getParameter("EdadCliente"))); SentenciaDB.setString(5,request.getParameter("SexoCliente"));
SentenciaDB.setString(6,request.getParameter("DireccionCliente"));
SentenciaDB.setString(7,request.getParameter("TelefonoCliente"));
SentenciaDB.setString(8,request.getParameter("UsuarioCliente"));
SentenciaDB.setString(9,request.getParameter("ContraseñaCliente"));
int Registros = SentenciaDB.executeUpdate();
vMensaje = "El nuevo cliente ha sido agregado";
response.sendRedirect("/Proy3erParcialBiblioteca/Bienvenido.html");
vMensaje = "No fue posible guardar->" + e.getMessage();
response.sendRedirect("/Proy3erParcialBiblioteca/Error.html");
}
finally {
BaseDatos.CerrarConexionDB();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP
* <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
processRequest(request, response);
}
/**
* Handles the HTTP
* <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo
() { return "Short description";
}// </editor-fold>
}
y los errores del glasfish son estos:
Cita: Advertencia: Class 'javax.ejb.PostActivate' not found, interception based on it is not enabled
Advertencia: Class 'javax.ejb.PrePassivate' not found, interception based on it is not enabled
y este mas abajo:
Cita: Grave: java.sql.SQLNonTransientConnectionException: Se ha rechazado la conexión porque no se ha encontrado la base de datos Proyecto_Biblioteca [uth on UTH].
Tambien les adjunto la clase conexion a ver si ven algo que yo no:
package BD;
Código Java:
Ver originalimport java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
/**
*
* @author ChrisW
*/
public class BaseDatos {
private static boolean MensajesEnConsola = true;
public static void AbrirConexionDB() {
//Variables para Conectarse al Motor de Base de Datos
String vDB_URL
= "jdbc:derby://localhost:1527/Proyecto_Biblioteca [uth on UTH]"; String JDBC_Driver
= "org.apache.derby.jdbc.ClientDriver";
try {
Class.forName(JDBC_Driver);
Conexion
= DriverManager.
getConnection(vDB_URL, vLogin, vPassword
); MostrarAlerta("Conectado Correctamente a la Base de Datos"); }
{
MostrarAlerta("El Driver o la Clase especificada es Incorrecta->" + e.getMessage());
//e.printStackTrace();
}
System.
out.
println("Error Desconocido Conectado a la BDD->" + e.
getMessage()); e.printStackTrace();
}
} //fin Abrir COnexionDB
//Verifica si existe una conexin abierta e intenta cerrarla
public static void CerrarConexionDB(){
try{
if (Conexion.isValid(0) || Conexion!=null){
Conexion.close();
}
}
{
Conexion = null;
}
}
public int verificar
(String sql
){ try{
st=getCon().createStatement();
res= st.executeQuery(sql);
if (res.next())
return 1;
st.close();
}
}
return -1;
}
//Metodo para mostrar advertencias en pantalla o consola
public static void MostrarAlerta
(String pvTexto
){ if (MensajesEnConsola)
else
pvTexto,
"Advertencia",
} //fin MostrarAlerta
return Conexion;
}
}