com.ejie.r01f.servlet.serializer
Class AbstractSerializerServlet

java.lang.Object
  extended byjavax.servlet.GenericServlet
      extended byjavax.servlet.http.HttpServlet
          extended bycom.ejie.r01f.servlet.serializer.AbstractSerializerServlet
All Implemented Interfaces:
java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
Direct Known Subclasses:
SerializerTestServlet

public abstract class AbstractSerializerServlet
extends javax.servlet.http.HttpServlet

Servlet que pone en una cola las llamadas que se le hacen y las ejecuta de forma serializada (una detrás de otra). La ventaja que tiene este servlet respecto a hacer el servlet singleThreaded es que en el modelo SingleThreaded, solo puede ser ejecutado por un cliente, bloqueandose los demás (bloqueandose el cliente), sin embargo, en el SerializerServlet el cliente NO SE BLOQUEA ya que hace la petición y esta se pone en cola, permitiendose un acceso al servlet por varios threads simultáneamente. CONFIGURACION ------------- El servlet se parametriza en el fichero de propiedades de la aplicación en la que se utiliza. Para saber desde que aplicación se está utilizando el servlet, hay que registrarlo en el fichero web.xml con un parametro appCode. Alternativamente, se puede pasar el código de aplicación como parámetro al servlet SerializerServlet Servlet de Serializacion de llamadas com.ejie.r01f.servlet.serializer.SerializerServlet appCode r01 Codigo de Aplicacion id (opcional) miSerializador Instancia del serializador En el fichero de configuración de la aplicción existirá una sección como: com.ejie.r01f.util.TestExecQueue 0 3 (el parámetro id es para permitir varios serializadores, y debe coincidir con el parámetro de inicio id del servlet) En esta sección se especifican: La clase ejecutora de las llamadas. Es una clase que extiende de AbstractExecQueue, implementando el metodo service() que se encarga de ejecutar el proceso que hay que realizar con cada objeto de la cola Por cada llamada al servlet, se introduce un objeto a procesar en la cola. Cuando la cola alcanza un límite, se lanza un thread secundario que se encarga de procesar cada objeto llamando al método service. El limite inferior de la cola. Cuando la cola llega a este limite, se dejan de procesar objetos El limite superior de la cola. Cuando la cola llega a este limite, se empiezan a procesar objetos hasta que se alcanza el limite inferior FORMA DE UTILIZACION -------------------- Esta clase es la base (es una clase abstracta) del servlet de serialización Basta con implementar el método getObjectToProcess que se encarga de obtener el objeto a procesar por la cola a partir de los parámetros de la request. Por lo tanto, simplemente habrá que crear una clase que extienda de AbstractSerializerServlet y que implemente dicho metodo: public class SerializerTestServlet extends AbstractSerializerServlet { public Object getObjectToProcess(Request req) { // Obtiene el objeto a procesar a partir de la request String obj = request.getParameter("txt"); return obj; } }

See Also:
Serialized Form

Constructor Summary
AbstractSerializerServlet()
           
 
Method Summary
 void destroy()
           
 java.lang.String getServletInfo()
           
 void init(javax.servlet.ServletConfig config)
           
 void service(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
           
 
Methods inherited from class javax.servlet.http.HttpServlet
service
 
Methods inherited from class javax.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletName, init, log, log
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractSerializerServlet

public AbstractSerializerServlet()
Method Detail

getServletInfo

public java.lang.String getServletInfo()

init

public void init(javax.servlet.ServletConfig config)
          throws javax.servlet.ServletException
Throws:
javax.servlet.ServletException

destroy

public void destroy()

service

public void service(javax.servlet.http.HttpServletRequest request,
                    javax.servlet.http.HttpServletResponse response)