RSS
Recortes: 2
java
base-datos
planificador
tarea
import javax.servlet.ServletContextListener; import javax.servlet.ServletContextEvent; import java.util.TimerTask; import java.util.Timer; public class Tarea extends TimerTask implements ServletContextListener { private Timer timer; public void contextInitialized(ServletContextEvent evt) { // Iniciamos el timer timer = new Timer(); timer.schedule(this, 0, 10*60*1000); // Ejemplo: Cada 10 minutos } public void contextDestroyed(ServletContextEvent evt) { timer.cancel(); } public void run() { // Aquí el código a ejecutar cada cierto tiempo } }Finalmente hay que añadir el listener al fichero web.xml de la aplicación. Ejemplo:
<web-app> <listener> <listener-class>Tarea</listener-class> </listener> </web-app>
Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/DB");Luego hay que definir dicha base de datos DB en el contexto de la aplicación web. Ejemplo:
<Context path="/aplicacion" docBase="aplicacion"> <Resource name="jdbc/DB" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/DB"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://host/database?autoReconnect=true</value> </parameter> <parameter> <name>username</name> <value>usuario</value> </parameter> <parameter> <name>password</name> <value>clave</value> </parameter> <parameter> <name>maxActive</name> <value>30</value> </parameter> <parameter> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <name>maxWait</name> <value>10000</value> </parameter> <parameter> <name>removeAbandoned</name> <value>true</value> </parameter> <parameter> <name>logAbandoned</name> <value>true</value> </parameter> </ResourceParams> </Context>