====== Los componentes de JBoss Seam 2.3 ====== --- //[[juanmiguelbg@um.es|JUAN MIGUEL BERNAL GONZALEZ]] 2014/02/07 12:27// JBoss Seam 2.3, proporciona clases de utilidad o clases instanciables que permiten realizar acciones más fácilmente. ===== org.jboss.seam.contexts ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/contexts/package-summary.html|org.jboss.seam.contexts]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/contexts/Contexts.html|Contexts.html|Contexts]]: Clase de utilidad que proporciona acceso a los contextos actuales asociados con el hilo. Los contextos son: application, business process, method, session, conversation, page y event. ===== org.jboss.seam.core ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/core/package-summary.html|org.jboss.seam.core]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/Contexts.html|Contexts]]: Componente Seam que proporciona acceso a los contextos actuales asociados con el hilo. Los contextos son: application, business process, method, session, conversation, page y event. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/Conversation.html|Conversation]]: Componente Seam que permite trabajar directamente con la conversación actual en la que se ejecuta la solicitud. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/Events.html|Events]]: Componente Seam que permite dar soporte a los eventos de los componentes, es decir, poder lanzar y capturar eventos (síncronos o asíncronos). * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/Expressions.html|Expressions]]: Componente Seam que permite crear expresiones EL de valor y método. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/Init.html|Init]]: Componente Seam que contiene la configuración de JBoss Seam para la aplicación. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/Interpolator.html|Interpolator]]: Componente Seam que permite interpolar expresiones EL por su valor en un //[[http://docs.oracle.com/javase/6/docs/api/java/lang/String.html|String]]//, es decir, sustituye los parámetros //#{0} .. #{n}// por su valor real y las expresiones EL reales por su valor real que estan dentro de un String. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/Locale.html|Locale]]: Componente Seam que permite de la localización (//[[http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html|Locale]]//) actual de la aplicación. Esta implementación base simplemente devuelve la configuración regional predeterminada del servidor. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/Manager.html|Manager]]: Componente Seam que permite gestionar la conversación. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/ResourceBundle.html|ResourceBundle]]: Componente Seam que permite gestionar el paquete de recursos (//[[http://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html|ResourceBundle]]//) de Seam. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/ResourceLoader.html|ResourceLoader]]: Componente Seam que permite el acceso a los recursos de la aplicación y paquetes de recursos. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/SeamResourceBundle.html|SeamResourceBundle]]: Clase de utilidad que permite buscar recursos especificados para páginas en //pages.xml//, y en la lista configurable de recursos especificada en el //components.xml//. ===== org.jboss.seam.document ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/document/package-summary.html|org.jboss.seam.document]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/document/DocumentStore.html|DocumentStore]]: Componente Seam que permite almacenar documentos como una cache con un ámbito de conversación. Los documentos tienen un //ID// asociado que permite comprobar si están disponibles, almacenarlos o recuperarlos de la cache de documentos. ===== org.jboss.seam.exception ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/exception/package-summary.html|org.jboss.seam.exception]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/exception/Exceptions.html|Exceptions]]: Componente Seam que permite gestionar la cadena de manejadores de excepciones. ===== org.jboss.seam.faces ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/faces/package-summary.html|org.jboss.seam.faces]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/FacesContext.html|FacesContext]]: Componente Seam que permite dar soporte para inyectar el objeto JSF [[https://javaserverfaces.java.net/nonav/docs/2.1/javadocs/javax/faces/context/FacesContext.html|FacesContext]]. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/FacesExpressions.html|FacesExpressions]]: Componente Seam que permite crear enlaces (//bindings//) de método y valor en un entorno JSF. Extiende la clase [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/Expressions.html|org.jboss.seam.core.Expressions]]. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/FacesManager.html|FacesManager]]: Componente Seam que permite gestionar la conversación en un entorno JSF. Extiende la clase [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/Manager.html|org.jboss.seam.core.Manager]]. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/FacesMessages.html|FacesMessages]]: Componente Seam que permite propagar los mensajes JSF (//[[https://javaserverfaces.java.net/nonav/docs/2.1/javadocs/javax/faces/application/FacesMessage.html|FacesMessage]]//) a través de redirecciones e interpolar las expresiones EL que hay en el String del mensaje. Extiende la clase [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/international/StatusMessages.html|StatusMessages]]. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/FacesPage.html|FacesPage]]: Componente Seam que permite contabilizar la información persistente de la conversación asociada con la página actual. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/HttpError.html|HttpError]]: Componente Seam que permite devolver un error HTTP como respuesta a la solicitud actual. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/IsUserInRole.html|IsUserInRole]]: Componente Seam que permite administrador el mapa de los roles asignados al usuario actual, y exponerlos a través del [[https://javaserverfaces.java.net/nonav/docs/2.1/javadocs/javax/faces/context/FacesContext.html|ExternalContext]] de JSF. Extiende la clase [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/web/IsUserInRole.html|org.jboss.seam.web.IsUserInRole]]. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/Parameters.html|Parameters]]: Componente Seam que permite acceder a los parámetros de la solicitud en un entorno JSF. Extiende la clase [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/web/Parameters.html|org.jboss.seam.web.Parameters]]. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/Redirect.html|Redirect]]: Componente Seam que permite realizar las redirecciones en los navegadores con parámetros. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/Renderer.html|Renderer]]: Componente Seam que permite la renderización directa de plantillas. Especialmente útil para Seam Mail. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/ResourceLoader.html|ResourceLoader]]: Componente Seam que permite acceder a los recursos de la aplicación en un entorno JSF. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/UiComponent.html|UiComponent]]: Componente Seam que permite acceder a los [[https://javaserverfaces.java.net/nonav/docs/2.1/javadocs/javax/faces/component/UIComponent.html|UIComponent]] JSF de la página actual mediante //id//. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/UserPrincipal.html|UserPrincipal]]: Componente Seam que permite exponer el actual [[http://docs.oracle.com/javase/7/docs/api/java/security/Principal.html|Principal]] del usuario a traves del [[https://javaserverfaces.java.net/nonav/docs/2.1/javadocs/javax/faces/context/ExternalContext.html|ExternalContext]] de JSF. Extiende la clase Extiende la clase [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/web/UserPrincipal.html|org.jboss.seam.web.UserPrincipal]]. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/faces/Validation.html|Validation]]: Componente Seam que permite determinar a la aplicación, si la fase de validación de JSF se ha realizado con éxito o se ha producido algún error. ===== org.jboss.seam.international ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/international/package-summary.html|org.jboss.seam.international]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/international/Locale.html|Locale]]: Componente Seam que permite gestionar el [[http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html|Locale]] actual, teniendo en encuenta el [[http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html|Locale]] seleccionado mediante el [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/international/LocaleSelector.html|LocaleSelector]]. Extiende la clase [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/Locale.html|Locale]]. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/international/LocaleConfig.html|LocaleConfig]]: Componente Seam que permite configurar el soporte de [[http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html|Locale]] para JSF desde el contenedor de Seam. Este componente pasa la configuración al runtime de JSF. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/international/LocaleSelector.html|LocaleSelector]]: Componente Seam que permite seleccionar la configuración local (//[[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/Locale.html|Locale]]//) para el usuario actual. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/international/Messages.html|Messages]]: Componente Seam que permite crear el mapa de mensajes interpolados definidos en el [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/core/SeamResourceBundle.html|ResourceBundle de Seam]]. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/international/StatusMessage.html|StatusMessage]]: Clase para instanciar mensajes de estado que se pueden crear en la capa de negocio y se muestra en la capa de vista. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/international/TimeZone.html|TimeZone]]: Componente Seam que permite gestionar el [[http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html|TimeZone]] del usuario actual seleccionado mediante el [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/international/TimeZoneSelector.html|TimeZoneSelector]]. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/international/TimeZones.html|TimeZones]]: Componente Seam que proporciona las lista de [[http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html|TimeZone]], limitada a [[http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html|TimeZone]] con //ids// que cimplen el formato //Continent/Place//, excluyendo los desfasados //ids// de tres letras. Los [[http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html|TimeZone]] devueltos tienen solucionado la compensación de UTC, que tiene en cuenta al cambio al horario de verano. Por ejemplo, Europe/Madrid es UTC+1; en invierno es GMT+1 y en verano es GMT+2. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/international/TimeZoneSelector.html|TimeZoneSelector]]: Componente Seam que permite seleccionar el [[http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html|TimeZone]] del usuario actual. El valor por defecto es el del servidor. ===== org.jboss.seam.log ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/log/package-summary.html|org.jboss.seam.log]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/log/Logging.html|Logging]]: Clase de utilidad que permite obtener instancias de [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/log/Log.html|Log]] y [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/log/LogProvider.html|LogProvider]]. Si //log4j// existe en el //classpath//, el [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/log/LogProvider.html|LogProvider]] sera de //log4j//, sino de [[http://docs.oracle.com/javase/7/docs/api/java/util/logging/package-summary.html|JDK logging]]. ===== org.jboss.seam.mail ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/mail/package-summary.html|org.jboss.seam.mail]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/mail/MailSession.html|MailSession]]: Componente Seam que permite gestionar la [[http://docs.oracle.com/javaee/7/api/javax/mail/Session.html|javax.mail.Session]]. ===== org.jboss.seam.navigation ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/navigation/package-summary.html|org.jboss.seam.navigation]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/navigation/Pages.html|Pages]]: Componente Seam que contiene los metadatos de las páginas definidas en //pages.xml//, incluyendo acciones de página y las descripciones de página. ===== org.jboss.seam.security ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/security/package-summary.html|org.jboss.seam.security]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/security/Credentials.html|Credentials]]: Componente Seam que permite gestionar la credencial de autenticación. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/security/FacesSecurityEvents.html|FacesSecurityEvents]]: Componente Seam que permite crear //[[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/international/StatusMessage.html|StatusMessage]]// para JSF en respuesta a ciertos eventos de seguridad, y permite desacolpar elcomponente //[[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/security/Identity.html|Identity]]// de JSF. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/security/Identity.html|Identity]]: Componente Seam que permite gestionar la autenticación del usuario y la gestión de la identidad del mismo. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/security/SecurityFunctions.html|SecurityFunctions]]: Clase de utilidad que permite acceder de forma directa a las funciones de seguridad que están definidas en el [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/security/Identity.html|Identity]] como: //hasRole// y //hasPermission//. ===== org.jboss.seam.theme ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/theme/package-summary.html|org.jboss.seam.theme]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/theme/Theme.html|Theme]]: Componente Seam que permite gestionar los recursos que pueden ser utilizados para el tema de la interface de usuario. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/theme/ThemeSelector.html|ThemeSelector]]: Componente Seam que permite seleccionar el tema de la interface de usuario. ===== org.jboss.seam.transaction ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/transaction/package-summary.html|org.jboss.seam.transaction]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/transaction/Transaction.html|Transaction]]: Componente Seam que permite obtener la //UserTransaction//. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/transaction/FacesTransactionEvents.html|FacesTransactionEvents]]: Componente Seam que permite producir //[[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/international/StatusMessage.html|StatusMessage]]// para JSF en respuesta a ciertos eventos producidos por la transacción. ===== org.jboss.seam.util ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/util/package-summary.html|org.jboss.seam.util]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/Base64.html|Base64]]: Clase de utilidad que permite codificar y decodificar, hacia y desde la notación Base64. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/Base64.InputStream.html|Base64.InputStream]]: A Base64.InputStream leerá los datos de otro java.io.InputStream, dados en el constructor, y permite codifica y decodificar, hacia y desde la notación Base64 sobre la marcha. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/Base64.OutputStream.html|Base64.OutputStream]]: A Base64.OutputStream escribira los datos a otro java.io.OutputStream, dados en el constructor, y permite codifica y decodificar, hacia y desde la notación Base64 sobre la marcha. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/EnumerationIterator.html|EnumerationIterator]]: Permite crear un [[http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html|iterador]] sobre una [[http://docs.oracle.com/javase/7/docs/api/java/util/Enumeration.html|enumeracíon]] pasado en el constructor. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/Exceptions.html|Exceptions]]: contiene un método para obtener la causa de una excepción, es útil cuando tenemos una excepción encapsulada en una //EJBException// o //ServletException//. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/FacesResources.html|FacesResources]]: Clase de utilidad que permite obtener un //InputStream// o //URL// de un recurso Faces. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/FacesUrlTransformer.html|FacesUrlTransformer]]: Clase auxiliar para preparar URLs JSF que incluyan el identificador de conversación. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/Hex.html|Hex]]: Codificador y decodificador Hexadecimal, obtenido de [[http://commons.apache.org/proper/commons-codec/|Apache Commons Codec]]. //DecoderException// y //EncoderException// han sido sustituidos por //RuntimeException//. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/IteratorEnumeration.html|IteratorEnumeration]]: Permite crear una [[http://docs.oracle.com/javase/7/docs/api/java/util/Enumeration.html|enumeracíon]] sobre un [[http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html|iterador]] pasado en el constructor. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/JSF.html|JSF]]: Permite ciertas operaciones sobre los //dataModel// de componentes JSF. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/Naming.html|Naming]]: Permite obtener [[http://docs.oracle.com/javase/7/docs/api/javax/naming/InitialContext.html|InitialContext]] del al API Naming. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/ProxyFactory.html|ProxyFactory]]: Fábrica de clases de proxy dinámicas. Esta factoría genera una clase extiende una superclase e implementa las interfaces dadas. Las llamadas de los métodos heredados de la superclase se reenvían y luego invoke() se llama en el controlador de métodos (//MethodHandler//) asociados a la clase generada. Las llamadas de los métodos de las interfaces también se envían al controlador de métodos. Esta clase se implementa como API de bajo nivel de Javassist y esta diseñada para maximizar el rendimiento. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/RandomStringUtils.html|RandomStringUtils]]: Clase de utilidad que permite crear cadenas de caracteres aleatorios. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/Reflections.html|Reflections]]: Clase de utilidad que permite trabajar con la API de Reflexión de manera sencilla. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/Resources.html|Resources]]: Clase de utilidad que permite obtener un //InputStream// o //URL// de un recurso de la aplicación, cerrar streams, obtener el //File// real de un recurso. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/Sorter.html|Sorter]] y [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/SortItem.html|SortItem]]: La clase //Sorter// permite ordenar objetos de la clase //SortItem//. La clase //SortItem// contiene dos listas, una llamada //around// que tienen mayor precedencia y la otra llamada //within// que contiene objetos que tienen menor precedencia. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/Strings.html|Strings]]: Clase de utilidad que permite trabajar con //Strings//. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/TypedBeanProperty.html|TypedBeanProperty]]: Clase que permite trabajar con campos (//[[http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Field.html|Field]]// de una clase) mediante la API de Reflexión. Esta clase permite establecer u obtener el valor del campo. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/Work.html|Work]]: Clase abstracta que permite ejecutar una acción dentro de una transacción JTA. Al crear una instancia, solo hay que definir el método //protected abstract T work() throws Exception;//, esta acción se ejecutará dentro de una transacción si esta no existe, o en la actual si esta existe. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/util/XML.html|XML]]: Clase de utilidad que permite obtener el [[http://dom4j.sourceforge.net/dom4j-1.6.1/apidocs/org/dom4j/Element.html|Element]] raíz mediante la API DOM4J. ===== org.jboss.seam.web ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/web/package-summary.html|org.jboss.seam.web]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/web/Session.html|Session]]: Componente Seam que permite controlar la invalidación de la [[http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpSession.html|HttpSession]] tanto en entorno JSF como Servlet. Como Seam mantiene el estado interno de la [[http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpSession.html|HttpSession]], es ilegal llamar a [[http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpSession.html#invalidate()|HttpSession.invalidate()]] mientras el contexto de Seam este activo. Las aplicaciones que utilizan la API de seguridad de Seam, deben llamar al método [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/security/Identity.html#logout()|Identity.logout()]] en lugar de llamar directamente a este componente. * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/web/UserPrincipal.html|UserPrincipal]]: Componente Seam que permite obtener el actual [[http://docs.oracle.com/javase/7/docs/api/java/security/Principal.html|Principal]] expuesto mediante el [[http://docs.oracle.com/javaee/6/api/javax/faces/context/ExternalContext.html|ExternalContext]] de JSF. ===== org.jboss.seam.webservice ===== Dentro del paquete [[http://docs.jboss.org/seam/2.3.1.Final/api/index.html?org/jboss/seam/webservice/package-summary.html|org.jboss.seam.webservice]], las clases más interesantes son: * [[http://docs.jboss.org/seam/2.3.1.Final/api/org/jboss/seam/webservice/SOAPRequestHandler.html|SOAPRequestHandler]]: Manejador de solicitud SOAP para controlar el ciclo de vida de Seam y gestionar la propagación de la conversación en una invocación a un servicio web, permitiendo tener servicios web con estado.