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);
lunes, 30 de abril de 2007
Acceder a componentes de Seam desde JSP JSF
Publicado por Juan Antonio Ruz en 5:07 0 comentarios
sábado, 28 de abril de 2007
Convert Date to Calendar
Calendar calendar = Calendar.getInstance();
calendar.setTime(i.getFechaInicio());
Publicado por Juan Antonio Ruz en 12:26 0 comentarios
Categorías: java
@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
invertir java.util.List
List
for(int index=lista.size()-1; index>=0; index--)
invertir.add(parents.get(index));
return invertir;
Publicado por Juan Antonio Ruz en 9:06 0 comentarios
Categorías: java
jueves, 26 de abril de 2007
obtener el valor del request en jstl/jsf
#{param.nombreDeVariable}
info obtenida en
http://www.exampledepot.com/egs/javax.servlet.jsp.jstl.core/getparam.html?l=rel
Publicado por Juan Antonio Ruz en 12:38 0 comentarios
JSF ADF RENDER DISPLAY PROBLEM
Si se utiliza más de un formulario en la página el explorer casca en el visualizado
Publicado por Juan Antonio Ruz en 9:34 0 comentarios
Categorías: ADF, JSF, Soluciones
Componentes JSF/ADF y renderizado
<af:panelBorder id="panelBorder"></af:panelBorder>
<af:panelBox id="panelBox"></af:panelBox>
el panelBorder genera un div
y el panelBox un table
Publicado por Juan Antonio Ruz en 9:00 0 comentarios
miércoles, 25 de abril de 2007
PermGen space Jboss OutOfMemoryError:
hay que incrementar la memoria reservada para el permgen dela siguiente forma en el run .bat del jboss
set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx1000m -XX:MaxPermSize=128m
Publicado por Juan Antonio Ruz en 8:05 5 comentarios
Categorías: JBoss, Soluciones
Expression Language EL con conditional
<af:goLink styleClass="#{(appADFServicio.actualPage=='/home.jsp')?'menuPrincipalLinkON':'menuPrincipalLink'}" text="#{messages.home}" destination="home.jsf"/>
Funciones en EL:
incluir la etiqueta: xmlns:fn="http://java.sun.com/jsp/jstl/functions"
y acceder a través del prefijo fn, ejemplo fn:substring
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html
http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html
Publicado por Juan Antonio Ruz en 4:58 0 comentarios
Problemas con el character set en java
Actualizar driver y que no haya duplicados de librería
actualmente estoy usando mysql-connector-java-5.0.5-bin.jar
Publicado por Juan Antonio Ruz en 3:13 0 comentarios
Categorías: i18n, java, Soluciones
Internacionalización en mysql
SHOW VARIABLES LIKE 'character_set_system';
Publicado por Juan Antonio Ruz en 2:52 0 comentarios
martes, 24 de abril de 2007
Ejecutar archivos jar desde la linea de comandos
java -cp . -jar archivo.jar
Publicado por Juan Antonio Ruz en 4:00 0 comentarios
Categorías: java
lunes, 23 de abril de 2007
error hibernate.hbm2ddl.auto mysql restrictions
Si al utilizar la herramienta de hibernate: hbm2ddl Si tienes un error parecido a éste:
Caused by: java.sql.BatchUpdateException: null, message from server: "Cannot add or update a child row: a foreign key constraint fails (`pruebasevilla/traducciones`, CONSTRAINT `FK6CE29E6294037F2F` FOREIGN KEY (`entidadTraduccion`) REFERENCES `profesores` (`id`))"
Tienes mysql configurado con restricciones, para arreglarlo sigue estos pasos (hay que reconfigurar mysql):
- inicia mysql Server Instance Configuration Wizard
- Selecciona: reconfigure Instance
- Selecciona: detailed Configuration
- Selecciona lo que tu veas yo marqué Developer Machine
- Selecciona:Non-Transactional Database Only
- Selecciona lo que tu veas yo marqué Decision Support(DSS)/OLAP
- Selecciona: Enable TCP/IP Networking
- Selecciona: Enable Strict Mode
- ...
Publicado por Juan Antonio Ruz en 7:01 0 comentarios
Categorías: hibernate, MySql, Soluciones
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
crear un nuevo usuario en mysql
GRANT ALL PRIVILEGES
ON *.* TO 'root'@'localhost' IDENTIFIED BY '' WITH
GRANT OPTION;
Publicado por Juan Antonio Ruz en 1:25 0 comentarios
Categorías: MySql
jueves, 19 de abril de 2007
Problema actualizando la base de datos con dbunit : dbunit Cannot delete or update a parent row:
Bueno pues para que funcione DBUNIt en una base de datos con restricciones de indices, es decir foreigns keys, pues antes de actualizar los datos habría que deshabilitar dichas restricciones de la siguiente forma:
SET FOREIGN_KEY_CHECKS=0, AUTOCOMMIT=0 ===========> DESHABILITAR
SET FOREIGN_KEY_CHECKS=1, AUTOCOMMIT=1 ===========> HABILITAR
SessionFactory ds = (SessionFactory)ctx.lookup(getDataSourceJNDIName());
Connection conexionPrincipal = ds.openSession().connection();
conexionPrincipal.createStatement().execute("SET FOREIGN_KEY_CHECKS=0, AUTOCOMMIT=0");
/**
aquí se harían las operaciones de actualizar la base de datos
**/
conexionPrincipal.createStatement().execute("SET FOREIGN_KEY_CHECKS=1, AUTOCOMMIT=1");
información encontrada en:
http://forum.springframework.org/archive/index.php/t-21957.html
Publicado por Juan Antonio Ruz en 8:50 0 comentarios
Categorías: MySql, Soluciones, TDD
windows xp home edition sp2 sobre macos problema restart reboot problem
http://www.apple.com/support/downloads/imacefifirmwareupdate11.html
Publicado por Juan Antonio Ruz en 6:13 0 comentarios
Categorías: MACOSX, Soluciones, windows
miércoles, 18 de abril de 2007
Cambiar la memoria del JVM
http://weblogs.java.net/blog/aiqa/archive/2005/04/jvm_memory_usag.html
Aquí he encontrado la solución pero sencillamente hay que cambiar estos parametros:
set JAVA_OPTS=%JAVA_OPTS% -Xms300m -Xmx800m
Publicado por Juan Antonio Ruz en 7:58 0 comentarios
Categorías: java
martes, 17 de abril de 2007
lunes, 16 de abril de 2007
af:chooseDate
Para conseguir un calendario como éste ( ADF ) con el componente af:chooseDate habría que insertar el siguiente código en la página jsp. Siendo el maxValue y el minValue los limites del calendario, es decir los días en los que se puede hacer click
<af:chooseDate binding="#{Bean.chooseDate1}" id="chooseDate1"
maxValue="#{Bean.maximo}"
minValue="#{Bean.minimo}"/>
y quedando la clase java de la siguiente manera:
import oracle.adf.view.faces.component.core.input.CoreChooseDate;
public class Bean {
private CoreChooseDate chooseDate1;
public CoreChooseDate getChooseDate1() {
return chooseDate1;
}
public void setChooseDate1(CoreChooseDate chooseDate1) {
this.chooseDate1 = chooseDate1;
}
public Date getMaximo(){
Calendar hoy=Calendar.getInstance();
hoy.roll(Calendar.DAY_OF_YEAR,10);
return hoy.getTime();
}
public Date getMinimo(){
Calendar hoy=Calendar.getInstance();
hoy.roll(Calendar.DAY_OF_YEAR,-10);
return hoy.getTime();
}
}
Publicado por Juan Antonio Ruz en 1:45 0 comentarios
Categorías: ADF
viernes, 13 de abril de 2007
Anotaciones y anotaciones de persistencia
Anotaciones de persistencia:
annotations.hibernate.org/
www.hibernate.org/hib_docs/
Los EJB3 se caracterizan por ser POJOs, es decir Plain Old Java Object, y esto quiere decir que no tienen nada de especial, son solo clases con propiedades y sus respectivos metodos accesores (get/set).
Las anotaciones (persistencia) se agrupan en dos categorías: mapeo lógico(relaciones y modelado de objeto) y mapeo físico(esquema de la base de datos)
Las clases para ello se encuentran en: javax.persistence.*
Hay que tener en cuenta que todos los campos o metodos no declarados como estaticos o transient se consideran persistentes. Así que habría que anotar todas las propiedades que no queramos persistir con: @Transient. Y la etiqueta minima de persistencia sería la de @Basic la cual puede ir complementada por el tipo de carga que queremos, ejemplo @Basic(fetch= FetchType.LAZY), esto tiene sus restricciones así que hay que mirar el tutorial y enterarse bien.
Publicado por Juan Antonio Ruz en 8:43 0 comentarios
Framework para javaScript
Me han recomendado este:
www.mochikit.com
Publicado por Juan Antonio Ruz en 7:55 0 comentarios
Categorías: frameworks, javaScript
extensiones para firefox
Las extensiones simplemente extienden la funcionalidad básica del programa. En este caso dan más funcionalidad al navegador firefox.
Para utilizar el disco de gmail como disco duro Gspace
Para comparar la visualizacion en el explorer: IE Tab
Para el desarrollo web CSS existe una muy util : Firebug
FTP ...
Las extensiones se ordenan en categorias:
Examinar extensiones por categoría
Publicado por Juan Antonio Ruz en 7:22 0 comentarios
Categorías: firefox
configurar JAVA_HOME en eclipse y ant
Cuando recibimos el mensaje: Perhaps JAVA_HOME does not point to the JDK, que en mi caso me salió al intentar lanzar unas pruebas desde ANT tenemos que seguir las siguientes instrucciones :
-----------------------------------------------
Of course, JAVA_HOME is pointing to the right location, in both the OS environment and within Eclipse (This variable can be set within Eclipse through Window > Preferences > Java > Classpath Variables).
So how to fix the Ant build problem?
Go to Window > Preferences > Ant > Runtime. Choose the Classpath tab. Select the Global Properties node in the tree and click Add External JARs. Select tools.jar from your JDK directory (e.g., j2sdk1.4.2_03\lib\tools.jar).
------------------------------------------------
Publicado por Juan Antonio Ruz en 3:52 0 comentarios
jueves, 12 de abril de 2007
CSS links
http://alistapart.com/topics/code/css/
http://alistapart.com/articles/customcorners2
http://alistapart.com/topics/code/serverside/
Publicado por Juan Antonio Ruz en 11:02 0 comentarios
Categorías: CSS
Especificación EJB3
El mejor tutorial que he visto por ahora:
http://trailblazer.demo.jboss.com/EJB3Trail/
Publicado por Juan Antonio Ruz en 3:31 0 comentarios
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.
Hibernate y ¿Para qué y cuando usar: equals y hashCode?
Según el tutorial de hibernate-3, esto se hace para utilizar las colecciones de tipo java.util.Set se implementaría así:
Teniendo en cuenta que se hace por el tema de indexación en un java.util.Set
public class Cat {
...
public boolean equals(Object other) {
if (this == other) return true;
if ( !(other instanceof Cat) ) return false;
final Cat cat = (Cat) other;
if ( !cat.getLitterId().equals( getLitterId() ) ) return false;
if ( !cat.getMother().equals( getMother() ) ) return false;
return true;
}
public int hashCode() {
int result;
result = getMother().hashCode();
result = 29 * result + getLitterId();
return result;
}
}
***HAY QUE ACCEDER A LAS PROPIEDADES A TRAVÉS DE SUS ACESORES PORQUE ES DE ESA FORMA QUE HIBERNATE CARGA LAS PROPIEDADES
Publicado por Juan Antonio Ruz en 11:08 0 comentarios
Categorías: hibernate, java, Lecciones JAVA
Could not find selected item matching value af:selectOneChoice f:selectItems
Este problema se da cuando en un selecItems no encuentra en la lista de posibles valores el valor seleccionado (selected) aunque veamos que de hecho si existe.
ADF/JSF al intentar seleccionar el valor de la lista de posibles valores lo hace a través del metodo equals() que tenemos que sobreescribir para que compare las claves de negocio y no compare por serialización del objeto (en este caso nunca serian iguales dos instancias con iguales valores de una clase).
Y el problema se produce cuando el acceso a los valores lo hacemos sin el correspondiente metodo interceptado por hibernate (PORQUE SI UTILIZAMOS HIBERNATE ESTAMOS UTILIZANDO POA [programación orientada a aspectos y por lo tanto interceptores] )
por un problema en la implementacion del equals e Hibernate.
La razón de este error es la siguiente:
Al acceder a las propiedades de los objetos sin el metodo adecuado (interceptado por hibernate) es decir los getter, el valor que devuelve es el que tiene por defecto la clase o el que tenga la instancia del objeto en un momento dado del programa.
Publicado por Juan Antonio Ruz en 2:38 0 comentarios
Categorías: ADF, AOP, Errores, hibernate, Soluciones
miércoles, 4 de abril de 2007
domingo, 1 de abril de 2007
Variables de entorno
set [sin argumentos] ---> visualizar todas las variables
Ejemplos para incluir variable:
- JAVA_HOME="${JAVA_HOME}:/usr/javatools/jdk1.5.0/:"
PATH="${PATH}:/home/my_user/bin:"
export variable=valor ---> incluir variable con valor en el proceso actual
echo $nombre_variable --> visualiza valor de variable
*Nota:
(Dos puntos sin incluir después un directorio son tratados como
el directorio de trabajo actual)
Publicado por Juan Antonio Ruz en 6:11 0 comentarios
Categorías: linux
Definir variables de entorno en macosx
Habría que editar el siguiente archivo
~/.MacOSX/environment.plist
siendo ~/ el directorio del usuario a modificar
En caso de no existir dicho archivo hay que crearlo a mano y también colocarle las directivas xml correspondientes
Y podemos utilizar la herramienta:/Developer/Applications/
PropertyListEditor.app
Hay que reiniciar la sesión de usuario para que surja efecto.
Ejemplo:
Publicado por Juan Antonio Ruz en 5:42 0 comentarios
Categorías: MACOSX