Actions
Feature #1440
openModificaciones a fuentes de Evaluación
Start date:
12/18/2025
Due date:
% Done:
0%
Estimated time:
Description
Modificaciones a fuentes de Evaluación¶
Quitar "WEB-INF.classes." del paquete
Es un efecto indeseable de la ingenieria inversa¶
package WEB-INF.classes.<paquete>;→
package <paquete>;
Conflicto java.util.Date y java.sql.Date¶
Comentar:
import java.sql.Date;
Para que sólo quede:
import java.util.Date;
Modificar creacion de conexion a base de datos de try a try-with-resource¶
Obviamente respetar el query y externalizar a una variable)
try (Conexion con = new Conexion();
Connection conn = con.ConexionDB_06();
CallableStatement cs = conn.prepareCall("{call sp_buscar_Ciudad (?,?,?)} ")) {
a:
String consulta = "SELECT CL_PAIS, NB_PAIS, CL_CVE_RENAPO FROM C_PAIS WHERE CL_PAIS != 0";
try ( Connection conn = Conexion.ConexionDB_06();
PreparedStatement pst = conn.prepareStatement(consulta);
) {
Quitar cierres de conexión¶
(puede que esté combinado con el resultset)
finally {
if (conn != null)
try {
conn.close();
} catch (SQLException er) {
er.printStackTrace();
}
}
Se quitará porque el try-with-resources cierra automáticamente
Y los resultset de try a try-with-resource¶
Tiene que ser uno distinto la de arriba
ResultSet resultSet = null;
...
if (call.execute()) {
resultSet = call.getResultSet();
...
}
a:
if (call.execute())
try ( ResultSet resultSet = call.getResultSet(); ){
...
} // si tiene un catch () hay que respetarlo
y quitar los cierres tambien¶
Puede que esté combinado con la conexion
finally {
if (resultSet != null)
try {
resultSet.close();
} catch (SQLException er) {
er.printStackTrace();
}
}
Se quitará porque el try-with-resources cierra automáticamente
Mapper a minusculas¶
private static final ObjectMapper MAPPER = new ObjectMapper();
a
private static final ObjectMapper mapper = new ObjectMapper();
Cambiar de json.simple a Jackson¶
Sería mejor cambiar a un DTO (data transfer object), pero por falta de tiempo lo dejaremos con estructuras genéricas.
Borrar:
import org.json.simple.JSONObject;
Cambiar:
JSONObject js = new JSONObject();
...
js.toJSONString();
a
ObjectNode js = MAPPER.createObjectNode();
...
response.getWriter().println(MAPPER.writeValueAsString(err));
Loggers (poner getClass(), excepto en loggers que sean estáticos)¶
Comentar:
import java.util.logging.Level;
import java.util.logging.Logger;
Agregar:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Cambiar:
private static final Logger logger = LoggerFactory.getLogger(*Registro_Can.class.getName()*);
por:
private static final Logger logger = LoggerFactory.getLogger(getClass());
Logging statements en métodos¶
Es importante que TODOS tengan un mensaje.
Sustituir:
Logger.getLogger(Controller.ServletBusquedaGralAsp.class.getName()).log(Level.SEVERE, (String)null, ex);
por:
logger.info("<nombre del metodo> <mensaje> {} {}", variable1, variable2);
Las variables se ponen entre "{}" (uno por variable y se pueden intercalar en el texto)
Si es error (por ejemplo en un catch):¶
logger.error("<nombre del metodo> <mensaje> {} {} ...", variable1, variable2, ..., ex);
Las variables se ponen entre "{}" (uno por variable y se pueden intercalar en el texto). la excepción final no requiere "{}".
Cambiar servlet de javax a jakarta¶
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
a
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
logging warn en metodos copiados¶
En los métodos que se copiaron de la versión anterior, hay que ponerle un logger.warn indicando eso, por si hay errores
Actions