com.ejie.r01f.servlet.serializer
Class SerializerServlet
java.lang.Object
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
com.ejie.r01f.servlet.serializer.SerializerServlet
- All Implemented Interfaces:
- java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
- public class SerializerServlet
- 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
Method Summary |
void |
destroy()
Method destroy. |
void |
doGet(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
|
void |
doPost(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
|
java.lang.String |
getServletInfo()
Method getServletInfo. |
void |
init()
Method init. |
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 |
SerializerServlet
public SerializerServlet()
init
public void init()
- Method init.
destroy
public void destroy()
- Method destroy.
doGet
public void doGet(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
- See Also:
(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
doPost
public void doPost(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp)
- See Also:
(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
getServletInfo
public java.lang.String getServletInfo()
- Method getServletInfo.
- Returns:
- java.lang.String