Documentos de Académico
Documentos de Profesional
Documentos de Cultura
plataforma Jade
Para este fin se modifica el archivo web.xml del aplicativo web, agregando el elemento
<listener> el cual define las caractersticas de un evento ("Listener") que ocurre en el
"Servlet Engine", dicho elemento anida en su estructura <filter-class> que indica el
nombre de la Clase Java que contiene la lgica a realizarse una vez ocurrido el evento.
Ejemplo:
Web.xml (los puntos indican que existe un cdigo anterior o siguiente)
</listener>
<listener>
<listener-class>agentes.AgenteJade</listener-class>
</listener>
.
Las clases java:
Esta clase AgenteJade es la que se llama en el elemento <listener>
package agentes;
import jade.wrapper.StaleProxyException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener()
public class AgenteJade implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
Runjade.init();
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
try {
Runjade.close();
} catch (StaleProxyException ex) {
Logger.getLogger(AgenteJade.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Esta clase Runjade ejecuta los agentes que se necesitan para el aplicativo
package agentes;
import jade.core.Profile;
import jade.core.ProfileImpl;
import jade.wrapper.AgentController;
import jade.wrapper.ContainerController;
import jade.wrapper.StaleProxyException;
public class Runjade {
private static AgentController ac;
private static AgentController ab;
private static ContainerController cc;
public static void init() {
jade.core.Runtime rt = jade.core.Runtime.instance();
Profile p = new ProfileImpl();
p.setParameter(Profile.CONTAINER_NAME, "Administracion");//se le asigna un nombre al contenedor
Object[] list = {"BD"};
cc = rt.createAgentContainer(p); //se crea un contenedor en la plataforma jade
if (cc != null) {
try { //se crea al agente en el contenedor asignado
ac = cc.createNewAgent("BD", "com.pe.SHCE.agentes.sistema.AgenteBD", null);
ac.start();
ab = cc.createNewAgent("sniffer", "jade.tools.sniffer.Sniffer", list);
ab.start();
} catch (Exception e) {
e.printStackTrace();
}
} //end if
}
public static void close() throws StaleProxyException{
ab.kill();
ac.kill();
cc.kill();
}
}