por lo visto se carga varias veces el archivo components.xml lo que genera componentes duplicados.
En este enlace se habla de comentar los componentes "problematicos" y volver a generar el jar correspondiente:
jar cvf ../jboss-seam.jar ./
http://www.seamframework.org/Community/DuplicateWebsessionWithSeam210BETA1
miércoles, 25 de marzo de 2009
Duplicate websession with Seam 2.1.0.BETA1
Publicado por
Juan Antonio Ruz
en
4:04
0
comentarios
Categorías: Seam
domingo, 1 de febrero de 2009
enviar en facelets como parametro una accion
http://www.seamframework.org/Community/FaceletsParamForActionMethod
y aqui otro acercamiento
http://andrewfacelets.blogspot.com/2006/06/creating-composite-controls-with-jsf.html
Publicado por
Juan Antonio Ruz
en
5:06
0
comentarios
lunes, 6 de octubre de 2008
Seam Framework con Ivy en la gestion de dependencias
http://in.relation.to/Bloggers/ManagingTheDependenciesOfASeamgenProjectWithIvy
Si alguno de vosotros ha intentado mavenizar un proyecto que utilice Seam seguramente habrá visto la escasez de recursos y dificultad para realizarlo (en mi caso no he llegado a conseguirlo). Y para más complicación cuando llega la hora de la herencia con MAVEN y su famoso superpom. EN resumen si utilizais Seam-gen podéis integrarlo con Ivy para la gestión de dependencias y la integración continua
Publicado por
Juan Antonio Ruz
en
5:22
0
comentarios
martes, 16 de octubre de 2007
jndiPatter en components.xml
<component name="org.jboss.seam.core.init">
< property> name="jndiPattern" pruebaSevilla/#{ejbName}/local/ <property>
</component>
Publicado por
Juan Antonio Ruz
en
10:14
0
comentarios
Categorías: Seam
martes, 12 de junio de 2007
configurar IntelliJ Idea con seam para TestNG
settings>proyect structure
modules>actualModule
- addContentroot
- add jbossseam folder
- mark lib as sourcefolder
- actual module
- sourceFolders:
- embedded-ejb/conf
- resources
- src/action
- src/model
- testFolders:
- src/test
Dependencies:
- proyectDependencies:
- addClasses: actualModule/lib/*
References to resources outside module: relative
Si te da un error
javax.naming.NameAlreadyBoundException
puede ser que la librería jboss-seam.jar y el source seam/src/main estén arrancando el datasource dos veces!!!
mirar en ejemplos del SEAM!!!
Create the jboss-seam Eclipse project with the following directories
in your source path:
src/main/
examples/blog/src/
examples/blog/resources/
embedded-ejb/conf/
And all jar files from the following directories in your classpath:
lib/
embedded-ejb/lib
3. Run examples/blog/src/org/jboss/seam/example/blog/test/testng.xml
using the TestNG plugin.
Publicado por
Juan Antonio Ruz
en
6:54
0
comentarios
Categorías: IDE, Intellij IDEA, Seam, Seam 1.2, Soluciones, TestNG
miércoles, 6 de junio de 2007
deleted object would be re-saved by cascadE
La excepción que lanza es la siguiente:
org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [es.cafs.model.RecursoProfesorImpl#33]
y ocurría la segunda vez que intentaba borrar un item(RecursoProfesorImagen) de un Set de un Objeto(Profesor), y además el scope era de Conversation, así que el error era que había que refrescar la entidad principal una vez que se volvia a seleccionar la entidad hija.
Publicado por
Juan Antonio Ruz
en
6:17
1 comentarios
lunes, 21 de mayo de 2007
Seam contexto evento en componente produce errores en adf:Switcher
Falla el af:switcher.setFacetName(String name) cuando el componente que lo activa pierde el render.
Publicado por
Juan Antonio Ruz
en
7:10
0
comentarios
Categorías: ADF, Seam, Soluciones
lunes, 30 de abril de 2007
Acceder a componentes de Seam desde JSP JSF
Component o = (Component) Contexts.getApplicationContext().get("convProfesores.component");
Profesores profesores = (Profesores) o.getInstance("convProfesores");
y para enviar variables aprovechando el conexto de seam (aunque se podría hacer a través del request):
Contexts.getApplicationContext().set("nombreDeVariable", objeto a enviar);
EntidadConRecursos entidadConRecursos = (EntidadConRecursos) Contexts.getApplicationContext().get(nombreDeVariable);
Publicado por
Juan Antonio Ruz
en
5:07
0
comentarios
sábado, 28 de abril de 2007
@RequestParameter en Seam
@RequestParameter
String idCurso;
Publicado por
Juan Antonio Ruz
en
8:59
0
comentarios
Categorías: Seam
viernes, 27 de abril de 2007
NonUniqueObjectException - Illegal attempt to associate a collection with two open sessions
El problema estaba relacionado con los tipos de contexto de Seam e hibernate
Estaba cargando en session unas listas de datos y en contexto (Render phase) de evento hibernate daba error
Publicado por
Juan Antonio Ruz
en
11:24
0
comentarios
lunes, 23 de abril de 2007
jboss seam no escanea componentes / scanning problem seam
si no existe el seam.properties no funciona, aunque sea un archivo en blanco debe existir en el source path
Publicado por
Juan Antonio Ruz
en
4:47
0
comentarios
Categorías: JBoss, Seam, Soluciones
miércoles, 11 de abril de 2007
¿qué es un Aspecto en una instancia de clase u objeto?
¿qué es un aspecto en la programación orientada a aspectos POA?
Un aspecto es una serie de operaciones que se repiten y pueden afectar a diferentes objetos y operaciones diferentes.
Un caso común es la métrica o testeo de la aplicación en tiempo. Si tenemos que incluir el código relacionado con medir el tiempo que tarda un método en ejecutarse dentro del propio método, entonces estamos mezclando aspectos diferentes e independientes del programa, tales como la ejecucion de una suma y el tiempo que tarda el producirse.
**** en desarrollo pero se refiere al aspecto en su forma más abstracta o dicho de otra forma el aspecto como perteneciente a un proceso
- El aspecto se puede referir al estado temporal (entendido como fase temporal o estado) del ciclo de vida de un objeto.
- También se puede entender como un comportamiento (interfaz) de la clase o instancia.
Los aspectos se implementan en forma de interceptores.
Un interceptor es un proxy.
En un programa orientado a aspectos debe existir un objeto que se encarga de devolver las nuevas instancias de las clases implicadas en la ejecución del programa. Este objeto encargado de la creación de nuevos objetos (el típico SpringFrameWork o Jboss Seam) devuelve proxys que tiene el mismo comportamiento que la clase esperada pero además aporta más comportamientos a la clase.
Ideas a desarrollar:
Entender la programación como un algoritmo de ciclos temporales/vitales de la instancia de un objeto.
martes, 27 de marzo de 2007
Interceptores Jboss Seam
Fases de JSF ya es mucha diferencia
Hay que crear una @interface que la utilizaremos para etiquetar/interceptar la clase(componente en terminos de Seam) correspondiente
import javax.interceptor.Interceptors;
import java.lang.annotation.Documented;
import static java.lang.annotation.ElementType.TYPE;
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
/**
* Created by IntelliJ IDEA.
* User: juanitu
* Date: 12-abr-2007
* Time: 17:43:24
* To change this template use File | Settings | File Templates.
*/
@Target(TYPE)
@Retention(RUNTIME)
@Documented
@Interceptors(Interceptor.class)
public @interface EtiquetaInterceptora {
}
Despues definimos el interceptor poniendo especial interes en como tratamos el tema de las fases de la aplicacion:
import org.jboss.seam.annotations.Around;
import org.jboss.seam.annotations.Within;
import org.jboss.seam.interceptors.*;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.contexts.Lifecycle;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;
import javax.faces.event.PhaseId;
import es.cafs.dao.CafsDAO;
import es.cafs.metadata.componentes.Componentes;
import java.lang.reflect.Method;
/**
* Created by IntelliJ IDEA.
* User: juanitu
* Date: 12-abr-2007
* Time: 17:45:36
* To change this template use File | Settings | File Templates.
*/
@Around({BijectionInterceptor.class, ValidationInterceptor.class,
ConversationInterceptor.class, BusinessProcessInterceptor.class})
@Within(RemoveInterceptor.class)
public class Interceptor {
protected static Log log = LogFactory.getLog(org.jboss.seam.interceptors.Interceptor.class);
@AroundInvoke
public Object checkLoggedIn(InvocationContext invocation) throws Exception {
CafsDAO dao = (CafsDAO) Contexts.getApplicationContext().get(Componentes.appCafsDAO);
log.error(dao==null);
Method method = invocation.getMethod();
log.error(invocation.getTarget().getClass()+"-"+method.getName() + " " + method.getReturnType());
if (Lifecycle.getPhaseId() == PhaseId.INVOKE_APPLICATION) {
log.error("INVOCANDO FASE");
} else {
log.error(invocation.getTarget().getClass()+"-"+method.getName() + " " + method.getReturnType());
log.error("OTRA FASE");
}
return invocation.proceed();
}
}
Y por último hay que etiquetar el componente correspondiente
@Scope(ScopeType.CONVERSATION)
@Name(Componentes.convVisorInformacion)
@Logeando
public class VisorInformacion{
}
Publicado por
Juan Antonio Ruz
en
11:30
0
comentarios