<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4821174228359780245</id><updated>2012-01-17T03:08:30.142-08:00</updated><category term='AOP'/><category term='Mockito'/><category term='navidad'/><category term='TestNG'/><category term='JSP'/><category term='cache'/><category term='swing'/><category term='Seam'/><category term='servidores'/><category term='pageflow'/><category term='Intellij IDEA'/><category term='EN DESARROLLO'/><category term='mock'/><category term='explorer'/><category term='struts2'/><category term='api'/><category term='hacienda'/><category term='IDE'/><category term='war'/><category term='EJB'/><category term='firefox'/><category term='JBehave'/><category term='Picasa'/><category term='Ivy'/><category term='TDD'/><category term='libros'/><category term='frameworks'/><category term='plugin'/><category term='BDD'/><category term='tutoriales'/><category term='java ubuntu'/><category term='RUBY'/><category term='Eventos'/><category term='windows'/><category term='Autor'/><category term='eclipse'/><category term='pages.xml'/><category term='actionscript'/><category term='Seam 1.2'/><category term='linux'/><category term='debug'/><category term='Errores'/><category term='hibernate'/><category term='i18n'/><category term='EL'/><category term='JBoss'/><category term='POO'/><category term='FCKeditor'/><category term='Web Beans'/><category term='java'/><category term='CSS'/><category term='jbpm'/><category term='JSTL'/><category term='EJBQL'/><category term='webdriver'/><category term='RichFaces'/><category term='Lecciones JAVA'/><category term='Google'/><category term='ADF'/><category term='apache2'/><category term='icefaces'/><category term='MAVEN'/><category term='fit'/><category term='JIVE'/><category term='Configuraciones Seguridad Servidor'/><category term='wtp'/><category term='seguridad social'/><category term='jpa'/><category term='Soluciones'/><category term='ANT'/><category term='ubuntu virtualbox'/><category term='twitter'/><category term='MACOSX'/><category term='Gestion de dependencias'/><category term='faces-config.xml'/><category term='persistencia'/><category term='JSF'/><category term='javaScript'/><category term='MySql'/><category term='testing'/><category term='Facelets'/><category term='Seam 2'/><category term='loggin'/><category term='cursos'/><category term='J2EE'/><category term='excepciones'/><category term='components.xml'/><category term='ftp'/><category term='subversion'/><title type='text'>Programando En Java</title><subtitle type='html'>&lt;a href="http://www.enjava.com"&gt;enjava.com&lt;/a&gt; &lt;br&gt;
Errores, problemas y soluciones de java y alrededores.
Si te gusta: participa!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default?start-index=101&amp;max-results=100'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>183</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-4998185205836727637</id><published>2012-01-17T03:08:00.001-08:00</published><updated>2012-01-17T03:08:30.161-08:00</updated><title type='text'>Solucion al problema de google app engine para mantener la session</title><content type='html'>&lt;a href="https://github.com/juanantonioruz/servlet-session-gae"&gt;https://github.com/juanantonioruz/servlet-session-gae&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A través de un filtro y de un listener de contexto se gestionan los atributos de la session de forma transparente, es decir se puede utilizar request.getSession().getAttribute("identificativo") al igual que en cualquier contenedor de servlets&lt;br /&gt;&lt;br /&gt;De esta manera no hay que utilizar MemCache o soluciones similares&lt;br /&gt;&lt;br /&gt;La librería no está testeada en producción y ha sido desarrollada con fines pedagogicos, es decir para que desarrolladores que estén aprendiendo servlets y les guste la idea de publicar en google app engine&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-4998185205836727637?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/4998185205836727637/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=4998185205836727637&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4998185205836727637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4998185205836727637'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2012/01/solucion-al-problema-de-google-app.html' title='Solucion al problema de google app engine para mantener la session'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-7978011530737571937</id><published>2012-01-17T02:21:00.001-08:00</published><updated>2012-01-17T02:21:12.418-08:00</updated><title type='text'>Encontrar un servicio en un puerto en linux</title><content type='html'>&lt;a href="http://www.cyberciti.biz/faq/find-out-which-service-listening-specific-port/"&gt;http://www.cyberciti.biz/faq/find-out-which-service-listening-specific-port/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #111111; font-family: Consolas, 'Andale Mono', Monaco, Courier, 'Courier New', Verdana, sans-serif; font-size: 12px; line-height: 18px;"&gt;# lsof -Pnl +M -i6&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #111111; font-family: Consolas, 'Andale Mono', Monaco, Courier, 'Courier New', Verdana, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-7978011530737571937?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/7978011530737571937/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=7978011530737571937&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7978011530737571937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7978011530737571937'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2012/01/encontrar-un-servicio-en-un-puerto-en.html' title='Encontrar un servicio en un puerto en linux'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-3540200480364221445</id><published>2011-12-05T17:38:00.003-08:00</published><updated>2011-12-05T17:41:27.754-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wtp'/><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><title type='text'>configurar maven y wtp para desplegar comodamente a servidor</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 14px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;Eclipse JEE Indigo con m2e plugin&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 14px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;add the Maven dependencies to the Deployment Assembly via: Project properties -&amp;gt; Deployment Assembly -&amp;gt; Add 'Java Build Path Entries' -&amp;gt; Maven Dependencies&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;y funciona sobre glasfish3 open source comunity version&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-3540200480364221445?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/3540200480364221445/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=3540200480364221445&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3540200480364221445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3540200480364221445'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2011/12/configurar-maven-y-wtp-para-desplegar.html' title='configurar maven y wtp para desplegar comodamente a servidor'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-4797218415812110142</id><published>2011-12-05T17:38:00.001-08:00</published><updated>2011-12-05T17:41:06.086-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><title type='text'>eclipse maven problem could not calculate build problem</title><content type='html'>esto parece que se da cuando existe maven2 y luego pasamos a maven3&lt;br /&gt;se resuelve borrando la carpeta org/apache/maven/plugin/* y que vuelva a descargarsela maven al intentar compile el proyecto&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-4797218415812110142?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/4797218415812110142/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=4797218415812110142&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4797218415812110142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4797218415812110142'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2011/12/eclipse-maven-problem-could-not.html' title='eclipse maven problem could not calculate build problem'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-9070777555691733309</id><published>2011-12-05T00:35:00.001-08:00</published><updated>2011-12-05T17:41:49.249-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><title type='text'>Eclipse Maven m2e Problem</title><content type='html'>Después de varios días intentando que funcione m2e en Eclipse Indigo he comprobado que el error era arrancar (startup) eclipse con un jre por defecto en lugar de un jdk.&lt;br /&gt;En Windows este problema da un poco de lata si lo primero que hemos instalado en nuestra maquina es un jre... al final tuve que crear un enlace directo de eclipse y sobre las propiedades de éste indicar que utilizara el jdk como -mv&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/1917760/howto-start-eclipse-in-jdk"&gt;http://stackoverflow.com/questions/1917760/howto-start-eclipse-in-jdk&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;... develop con java development kit !...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-9070777555691733309?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/9070777555691733309/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=9070777555691733309&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/9070777555691733309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/9070777555691733309'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2011/12/eclipse-maven-m2e-problem.html' title='Eclipse Maven m2e Problem'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-5140478244716987753</id><published>2011-07-13T05:19:00.000-07:00</published><updated>2011-07-13T05:22:31.250-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cursos'/><title type='text'>Convocatoria-Curso J2EE abierto plazo de inscripción</title><content type='html'>Acaba de publicarse la nueva convocatoria del curso de J2EE 900 horas que se imparte en la CEA (Confederación de Empresarios de Andalucía) en la que participo como profesor&lt;div&gt;aquí os dejo el enlace &lt;a href="http://www.cea.es/fpo/curso.aspx?id=3524664&amp;amp;lugar=CEA"&gt;http://www.cea.es/fpo/curso.aspx?id=3524664&amp;amp;lugar=CEA&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.cea.es/fpo/curso.aspx?id=3524664&amp;amp;lugar=CEA"&gt;&lt;/a&gt;y estos son los contenidos del curso:&lt;/div&gt;&lt;div&gt;&lt;div&gt; ENTORNO DE DESARROLLO INTEGRADO: ECLIPSE IDE PARA DESARROLLO JAVA EE&lt;/div&gt;&lt;div&gt;DESARROLLO DIRIGIDO POR PRUEBAS (TDD - TEST DRIVEN DEVELOPMENT)&lt;/div&gt;&lt;div&gt;PROGRAMACIÓN ORIENTADA A OBJETOS (POO)&lt;/div&gt;&lt;div&gt;PROGRAMACIÓN ORIENTADA A EVENTOS (POE)&lt;/div&gt;&lt;div&gt;DESARROLLO DE COMPONENTES WEB CON TECNOLOGÍA JAVA&lt;/div&gt;&lt;div&gt;DESARROLLO DE APLICACIONES J2EE&lt;/div&gt;&lt;div&gt;ACCESO A BASE DE DATOS. HIBERNATE&lt;/div&gt;&lt;div&gt;INTRODUCCIÓN A EJB3 Y SU RELACIÓN CON LAS NOVEDADES APORTADAS DESDE LA VERSIÓN DE JAVA 5&lt;/div&gt;&lt;div&gt;FUNDAMENTOS DEL LENGUAJE DE PROGRAMACIÓN JAVA&lt;/div&gt;&lt;div&gt;PROGRAMACIÓN JAVA&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-5140478244716987753?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/5140478244716987753/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=5140478244716987753&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5140478244716987753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5140478244716987753'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2011/07/convocatoria-curso-j2ee-abierto-plazo.html' title='Convocatoria-Curso J2EE abierto plazo de inscripción'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-7664678093551416647</id><published>2011-02-27T12:04:00.000-08:00</published><updated>2011-02-27T12:08:12.751-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Ejemplo simple de servicio de conexion a google spreadshhet java api</title><content type='html'>&lt;a href="http://enjava.tiddlyspot.com/enjava.html#[[Ejemplo%20SpreadSheet%20Google%20Docs%20Java%20API]]"&gt;http://enjava.tiddlyspot.com/enjava.html#[[Ejemplo%20SpreadSheet%20Google%20Docs%20Java%20API]]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-7664678093551416647?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/7664678093551416647/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=7664678093551416647&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7664678093551416647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7664678093551416647'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2011/02/ejemplo-simple-de-servicio-de-conexion.html' title='Ejemplo simple de servicio de conexion a google spreadshhet java api'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1066671504383205915</id><published>2011-02-15T09:40:00.001-08:00</published><updated>2011-02-15T09:40:58.349-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java ubuntu'/><title type='text'>instalar sun-jdk5 en ubuntu 10</title><content type='html'>Open /etc/apt/sources.list with a text editor like gedit:&lt;pre&gt;sudo gedit /etc/apt/sources.list&lt;/pre&gt;&lt;p&gt;2- Add the following lines to the end of the file then save it and close:&lt;/p&gt;&lt;pre&gt;  ## For sun-java5-jdk  deb http://ir.archive.ubuntu.com/ubuntu jaunty-updates main multiverse&lt;/pre&gt;&lt;p&gt;3- Update the packages lists and install sun-java5-jdk:&lt;/p&gt;&lt;pre&gt; sudo aptitude update  sudo aptitude install sun-java5-jdk&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1066671504383205915?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1066671504383205915/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1066671504383205915&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1066671504383205915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1066671504383205915'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2011/02/instalar-sun-jdk5-en-ubuntu-10.html' title='instalar sun-jdk5 en ubuntu 10'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-6928118536181956467</id><published>2011-02-15T06:54:00.000-08:00</published><updated>2011-02-15T07:05:24.280-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu virtualbox'/><title type='text'>VirtualBox: ubuntu sobre ubuntu</title><content type='html'>para acceder a carpetas compartidas: ** el nombre de la carpeta compartida en mi caso es "Documentos" **&lt;br /&gt;&lt;ol&gt;&lt;li&gt;utilizando el asistente (en configuración... hace falta apagar la vm correspondiente a configurar) se da de alta la carpeta compartida indicando el nombre y la ruta&lt;/li&gt;&lt;li&gt;una vez que arranca la vm correspondiente, en el menú principal Dispositivos... hacer click en instalar Guest Aditions y reiniciar la VM... la proxima vez que arrancamos aparece un cd ejecutable en el escritorio que al acabar de hacerlo introducimos los siguientes comandos en la terminal ...&lt;/li&gt;&lt;li&gt;sudo mkdir /media/compartida&lt;/li&gt;&lt;li&gt;sudo mount -t vboxsf Documentos /media/compartida&lt;/li&gt;&lt;li&gt;y ya está disponible en el directorio correspondiente&lt;/li&gt;&lt;li&gt;Ese comando hay que ejecutarlo cada vez que queramos acceder a la  carpeta compartida luego de haber cerrado sesión o haber apagado el  equipo. Si queremos que la carpeta quede accesible permanentemente, hay  que modificar el archivo &lt;b&gt;fstab&lt;/b&gt;:&lt;br /&gt;&lt;/li&gt;&lt;li&gt;sudo gedit /etc/fstab &lt;/li&gt;&lt;li&gt;incluimos la linea siguiente...&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Documentos /media/compartida     vboxsf  rw,gid=1000,uid=1000,auto       0       0&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;obtenido en : http://rube83.blogspot.com/2010/07/montar-carpetas-compartidas-de.html y a su vez de &lt;a href="http://www.guia-ubuntu.org/index.php?title=VirtualBox"&gt;http://www.guia-ubuntu.org/index.php?title=VirtualBox&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-6928118536181956467?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/6928118536181956467/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=6928118536181956467&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6928118536181956467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6928118536181956467'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2011/02/virtualbox-ubuntu-sobre-ubuntu.html' title='VirtualBox: ubuntu sobre ubuntu'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-7713903368482959026</id><published>2009-07-15T12:06:00.000-07:00</published><updated>2009-07-15T16:31:11.739-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='struts2'/><title type='text'>Struts 2</title><content type='html'>&lt;span style="font-style: italic;"&gt;Traducción de http://www.infoq.com/minibooks/starting-struts2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El objetivo de Struts2 es simple: facilitar el desarrollo de aplicaciones web. Para conseguir esto reduce la configuración en archivos de tipo XMLs utilizando @notaciones y configuraciones por convención o defecto.&lt;br /&gt;Las "acciones (Actions)" de Struts 1 ahora son POJOs, es decir son clases java que no heredan ni implementan clases ni interfaces. Con ello evidentemente, no nos ligamos a dicho framework y facilita el testeo en aislamiento.&lt;br /&gt;Por otro lado la conversión de valores que introduce el usuario en los formularios, se  contempla de forma "automatizada", es decir que se convierte al tipo de dato que lo va a encapsular.&lt;br /&gt;Se contempla igualmente la inyección de dependencias con el plugin de Spring&lt;br /&gt;El renderizado a través de JSPs ....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Action based framework &lt;/li&gt;&lt;li&gt; Mature with a vibrant developer and user community &lt;/li&gt;&lt;li&gt; Annotation and XML configuration options &lt;/li&gt;&lt;li&gt; POJO-based actions that are easy to test &lt;/li&gt;&lt;li&gt; Spring, SiteMesh and Tiles integration &lt;/li&gt;&lt;li&gt; OGNL expression language integration &lt;/li&gt;&lt;li&gt; Themes based tag libraries and Ajax tags &lt;/li&gt;&lt;li&gt; Multiple view options (JSP, Freemarker, Velocity and &lt;/li&gt;&lt;li&gt;XSLT) &lt;/li&gt;&lt;li&gt; Plug-ins to extend and modify framework features &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-7713903368482959026?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/7713903368482959026/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=7713903368482959026&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7713903368482959026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7713903368482959026'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2009/07/struts-2.html' title='Struts 2'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-792576039800220286</id><published>2009-03-31T10:09:00.000-07:00</published><updated>2009-03-31T10:13:17.924-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='loggin'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>cambiar el nivel de log en consola de jboss</title><content type='html'>hay que añadir niveles en /server/default/log4j.xml o /server/default/jbosslog4j.xml segun la versión de jboss&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-792576039800220286?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/792576039800220286/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=792576039800220286&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/792576039800220286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/792576039800220286'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2009/03/cambiar-el-nivel-de-log-en-consola-de.html' title='cambiar el nivel de log en consola de jboss'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-6241583255862499767</id><published>2009-03-25T04:04:00.000-07:00</published><updated>2009-03-25T04:05:47.810-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam'/><title type='text'>Duplicate websession with Seam 2.1.0.BETA1</title><content type='html'>por lo visto se carga varias veces el archivo components.xml lo que genera componentes duplicados.&lt;br /&gt;En este enlace se habla de comentar los componentes "problematicos" y volver a generar el jar correspondiente:&lt;br /&gt;jar cvf ../jboss-seam.jar ./&lt;br /&gt;&lt;a href="http://www.seamframework.org/Community/DuplicateWebsessionWithSeam210BETA1"&gt;http://www.seamframework.org/Community/DuplicateWebsessionWithSeam210BETA1&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-6241583255862499767?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/6241583255862499767/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=6241583255862499767&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6241583255862499767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6241583255862499767'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2009/03/duplicate-websession-with-seam-210beta1.html' title='Duplicate websession with Seam 2.1.0.BETA1'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-3852228407392811890</id><published>2009-02-20T04:07:00.000-08:00</published><updated>2009-02-20T04:08:03.307-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='tutoriales'/><title type='text'>Tutoriales muy buenos de java</title><content type='html'>&lt;a href="http://java.sun.com/docs/books/tutorial/index.html"&gt;http://java.sun.com/docs/books/tutorial/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-3852228407392811890?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/3852228407392811890/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=3852228407392811890&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3852228407392811890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3852228407392811890'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2009/02/tutoriales-muy-buenos-de-java.html' title='Tutoriales muy buenos de java'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-922293622813306937</id><published>2009-02-10T10:04:00.001-08:00</published><updated>2009-02-10T10:04:19.077-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Un plugin de eclipse para publicar el código con formato HTML</title><content type='html'>java2html&lt;br /&gt;&lt;a href="http://www.java2html.de/eclipse.html" target="_blank"&gt;http://www.java2html.de/&lt;wbr&gt;eclipse.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-922293622813306937?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/922293622813306937/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=922293622813306937&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/922293622813306937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/922293622813306937'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2009/02/un-plugin-de-eclipse-para-publicar-el.html' title='Un plugin de eclipse para publicar el código con formato HTML'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-6645291705088420348</id><published>2009-02-10T03:11:00.000-08:00</published><updated>2009-02-26T04:29:44.577-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Configurar dependencias y recursos en eclipse</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_8Ex04A8y_hc/SaaLMRiX7wI/AAAAAAAAAqE/pDSVnJxYOPE/s1600-h/Imagen+5.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 122px;" src="http://1.bp.blogspot.com/_8Ex04A8y_hc/SaaLMRiX7wI/AAAAAAAAAqE/pDSVnJxYOPE/s400/Imagen+5.png" alt="" id="BLOGGER_PHOTO_ID_5307082253884976898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_8Ex04A8y_hc/SZFhJUF790I/AAAAAAAAAp8/_bJQIt5MQgw/s1600-h/Imagen+3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 266px;" src="http://4.bp.blogspot.com/_8Ex04A8y_hc/SZFhJUF790I/AAAAAAAAAp8/_bJQIt5MQgw/s400/Imagen+3.png" alt="" id="BLOGGER_PHOTO_ID_5301125049032111938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;¿como incluir en el build ciertos recursos de otros proyectos... ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;click en &gt; link source&gt; indicamos la carpeta que queremos incluir y posteriormente podemos definir patrones de inclusion/exclusion&lt;/li&gt;&lt;li&gt;al finalizar indicamos en la ventana que aparece en la imagen que el output de de dicha carpeta sea personalizado, es decir en la carpeta correspondiente de nuestra aplicación, que debe coincidir con el nombre de la carpeta que se genera***&lt;br /&gt;&lt;/li&gt;&lt;li&gt;... esta solución cubre perfectamente la herencia en la capa de vista, porque desde el mismo IDE (Eclipse) podemos navegar entre los archivos de vista, es decir están fisicamente en dicha carpeta!&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-6645291705088420348?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/6645291705088420348/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=6645291705088420348&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6645291705088420348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6645291705088420348'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2009/02/configurar-dependencias-y-recursos-en.html' title='Configurar dependencias y recursos en eclipse'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_8Ex04A8y_hc/SaaLMRiX7wI/AAAAAAAAAqE/pDSVnJxYOPE/s72-c/Imagen+5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-6012751481358993601</id><published>2009-02-08T12:02:00.000-08:00</published><updated>2009-02-08T12:05:18.854-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><title type='text'>Arrancar Hibernate con AnnotationConfiguration con package no funciona recrear base de datos</title><content type='html'>Si utilizamos AnnotationConfiguration   addPackage no recrea la base de datos aunque en el hibernate.properties tengamos la propiedad correspondiente: hibernate.hbm2ddl.auto=create&lt;br /&gt;&lt;br /&gt;si se utiliza addAnnotatedClass si que la recrea!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-6012751481358993601?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/6012751481358993601/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=6012751481358993601&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6012751481358993601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6012751481358993601'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2009/02/arrancar-hibernate-con.html' title='Arrancar Hibernate con AnnotationConfiguration con package no funciona recrear base de datos'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-7036730428271036944</id><published>2009-02-01T05:06:00.000-08:00</published><updated>2009-02-01T05:09:44.906-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Facelets'/><category scheme='http://www.blogger.com/atom/ns#' term='Seam'/><title type='text'>enviar en facelets  como parametro una accion</title><content type='html'>&lt;a href="http://www.seamframework.org/Community/FaceletsParamForActionMethod"&gt;http://www.seamframework.org/Community/FaceletsParamForActionMethod&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;y aqui otro acercamiento&lt;br /&gt;&lt;a href="http://andrewfacelets.blogspot.com/2006/06/creating-composite-controls-with-jsf.html"&gt;http://andrewfacelets.blogspot.com/2006/06/creating-composite-controls-with-jsf.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-7036730428271036944?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/7036730428271036944/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=7036730428271036944&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7036730428271036944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7036730428271036944'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2009/02/enviar-en-facelets-como-parametro-una.html' title='enviar en facelets  como parametro una accion'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-3359640267789273716</id><published>2009-01-27T04:36:00.000-08:00</published><updated>2009-01-27T04:47:12.806-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='Soluciones'/><category scheme='http://www.blogger.com/atom/ns#' term='EJBQL'/><title type='text'>Problema al crear un query con inheritance en ejbql</title><content type='html'>si tenemos herencia en nuestro modelo de datos y en la consulta EJBQL queremos tomar solo los objetos que se corresponden con uno de los "hijos" accedemos al atributo class y le pasamos la clase sin comillas y directamente en el query,&lt;br /&gt;un ejemplo de cuando funciona y cuando no en ...&lt;br /&gt;&lt;a href="http://opensource.atlassian.com/projects/hibernate/browse/HHH-1836"&gt;http://opensource.atlassian.com/projects/hibernate/browse/HHH-1836&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-3359640267789273716?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/3359640267789273716/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=3359640267789273716&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3359640267789273716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3359640267789273716'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2009/01/problema-al-crear-un-query-con.html' title='Problema al crear un query con inheritance en ejbql'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-3009944831141851343</id><published>2009-01-22T04:35:00.000-08:00</published><updated>2009-01-22T04:37:36.047-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RUBY'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>10 ideas para un programador java que quiere entender ruby</title><content type='html'>&lt;a href="http://onestepback.org/articles/10things/index.html"&gt;http://onestepback.org/articles/10things/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-3009944831141851343?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/3009944831141851343/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=3009944831141851343&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3009944831141851343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3009944831141851343'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2009/01/10-ideas-para-un-programador-java-que.html' title='10 ideas para un programador java que quiere entender ruby'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-3163585602449175326</id><published>2009-01-07T10:37:00.000-08:00</published><updated>2009-01-28T12:10:56.720-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Soluciones'/><category scheme='http://www.blogger.com/atom/ns#' term='Seam 2'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>Seam JBoss 4.2.3 Problem</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8Ex04A8y_hc/SYC7xveS2fI/AAAAAAAAApc/DGt3dP2MKV4/s1600-h/Imagen+2.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 215px;" src="http://3.bp.blogspot.com/_8Ex04A8y_hc/SYC7xveS2fI/AAAAAAAAApc/DGt3dP2MKV4/s400/Imagen+2.png" alt="" id="BLOGGER_PHOTO_ID_5296439625019218418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;table class="commentHeader" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="commentSubject"&gt;&lt;br /&gt;En definitiva: borrar la linea que se ve en la imagen dentro del modulo ejb&lt;br /&gt;&lt;/td&gt;&lt;td class="commentAuthorInfo smallFont"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="commentAuthorPortrait"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div id="forumRepliesPlugin:j_id1230" class="commentText"&gt;&lt;p class="wikiPara"&gt;&lt;a href="http://seamframework.org/Community/ProblemWithJboss423"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wikiPara"&gt;&lt;a href="http://seamframework.org/Community/ProblemWithJboss423"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wikiPara"&gt;&lt;a href="http://seamframework.org/Community/ProblemWithJboss423"&gt;http://seamframework.org/Community/ProblemWithJboss423&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="wikiPara"&gt;I have the same issue using JBoss Tools. I have solved this by editing the MANIFEST.MF file in the ejb sub-project. Remove the reference to jboss-seam.jar. Then add this back to your build path manually. Now redeploy and you should be good to go. &lt;/p&gt;  &lt;p class="wikiPara"&gt;On my machine I have this issue with both 1.5 and 1.6 JDKs, but I'll admit that I have a lot of various tools and its possible that somehow the project generation tools are still finding a 1.6 JDK, but I don't think so. I've tried everything I can think of, but I in the end this is a serious shortcoming of the jboss tools that they do not yet support 1.6. Not sure what they are waiting for with 1.5 going end of life next summer. They have support slated for Tools 3.0, but looking at the Jira for that project is not encouraging. &lt;/p&gt;  &lt;p class="wikiPara"&gt; beren&lt;/p&gt; &lt;/div&gt;&lt;div id="forumRepliesPlugin:j_id1236" class="commentSignature"&gt;&lt;div id="forumRepliesPlugin:j_id1237" class="commentSignatureSeparator"&gt; &lt;/div&gt;&lt;p class="wikiPara"&gt; beren &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-3163585602449175326?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/3163585602449175326/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=3163585602449175326&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3163585602449175326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3163585602449175326'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2009/01/seam-jboss-423-problem.html' title='Seam JBoss 4.2.3 Problem'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_8Ex04A8y_hc/SYC7xveS2fI/AAAAAAAAApc/DGt3dP2MKV4/s72-c/Imagen+2.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-8999644820023780541</id><published>2008-12-07T02:59:00.000-08:00</published><updated>2008-12-07T03:00:49.865-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Seam 2'/><category scheme='http://www.blogger.com/atom/ns#' term='TestNG'/><title type='text'>Configurar ejemplos de seam para testng - Running integration tests from the TestNG Eclipse Plugin</title><content type='html'>&lt;a href="http://www.seamframework.org/Community/GettingStartedDevelopingTheSeamFramework#H-RunningIntegrationTestsFromTheTestNGEclipsePlugin"&gt;http://www.seamframework.org/Community/GettingStartedDevelopingTheSeamFramework#H-RunningIntegrationTestsFromTheTestNGEclipsePlugin&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En el archivo Readme.txt no se especifica las librerias que hay que adjuntar al path, así que es imposible hacerlo con esas instrucciones, sin embargo en el link de arriba viene todo OK!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-8999644820023780541?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/8999644820023780541/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=8999644820023780541&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8999644820023780541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8999644820023780541'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/12/configurar-ejemplos-de-seam-para-testng.html' title='Configurar ejemplos de seam para testng - Running integration tests from the TestNG Eclipse Plugin'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-4052724286324701349</id><published>2008-12-04T05:29:00.000-08:00</published><updated>2008-12-04T05:31:03.921-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='libros'/><category scheme='http://www.blogger.com/atom/ns#' term='EJB'/><title type='text'>Libro EJB 3.0 aconsejable</title><content type='html'>Titulo: ENTERPRISE JAVABEANS 3.0 CON ECLIPSE Y JBOSS&lt;br /&gt;Editorial: Marcombo&lt;br /&gt;&lt;a href="http://www.marcombo.com/Enterprise-javabeans-3_0-con-eclipse-y-jboss_isbn9788426714718.html" target="_blank"&gt;enlace a libro&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;me lo acabo de comprar porque está en español y me ha parecido muy claro y muy practico, además en la versión 3 de EJB&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-4052724286324701349?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/4052724286324701349/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=4052724286324701349&amp;isPopup=true' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4052724286324701349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4052724286324701349'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/12/libro-ejb-30-aconsejable.html' title='Libro EJB 3.0 aconsejable'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-7353075733403556518</id><published>2008-12-02T12:40:00.000-08:00</published><updated>2008-12-02T14:06:05.843-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Beans'/><title type='text'>Introduccion a Web Beans</title><content type='html'>Con este framework de desarrollo web J2EE nos encontramos con estos ineludibles conceptos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Componente&lt;/li&gt;&lt;li&gt;Contexto&lt;/li&gt;&lt;li&gt;Inyección de dependencias (hay ciertos componentes que por su naturaleza no son inyectables por ejemplo MDBs o ¿Singletons? )&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Eventos y escuchadores de eventos (listeners)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Interceptores&lt;/li&gt;&lt;li&gt;Decoradores (decorator): tipo especial de interceptor&lt;/li&gt;&lt;li&gt;Ciclo de vida&lt;/li&gt;&lt;/ul&gt;Algunos de estos conceptos coinciden con el SeamFrameWork, ya que el director de desarrollo es el mismo: Gavin King. En realidad creo que el único concepto diferente es el Decorator, del que hablaré más adelante. Igualmente aporta a la herramienta Seam el menor apoyo en Strings para referirse a clases u objetos de la aplicación, es decir es más "typesafe".&lt;br /&gt;&lt;br /&gt;Los Web Beans se aplican a JavaBeans, EJBs y Servlets, aunque el framework está preparado para integrarse con "cualquier cosa".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;¿qué es un web bean?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Características:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;scope ---&gt; contexto ( dependiendo del tipo pueden conservar el  estado o ser sin estado [statefull - stateless] )&lt;/li&gt;&lt;li&gt;a deployment type ---&gt; un tipo de despliegue&lt;br /&gt;&lt;/li&gt;&lt;li&gt;API types, propiedades&lt;/li&gt;&lt;li&gt;annotation types, anotaciones de esas propiedades&lt;/li&gt;&lt;li&gt;name (optional)- un nombre (opcional)&lt;/li&gt;&lt;li&gt;interceptor binding types - los interceptores del web bean, se indica con la anotación @Interceptors(xxx.class) o a través de la anotación propia del interceptor&lt;br /&gt;&lt;/li&gt;&lt;li&gt;implementation - implementación&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Scope:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Al definir el scope o contexto estamos repercutiendo en el ciclo de vida (lifecycle) del web bean. Stateless beans no guardan el estado mientras que Statefull si lo mantienen. Con el scope también determinamos la visibilidad de bean, ya que los beans de Session @SessionScoped verán a los de su mismo contexto, es decir @SessionScoped&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Deployment type:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Al indicar el tipo de despliegue, que por defecto es @Production, podemos separar los escenarios donde viviran dichos beans de @Mock (pruebas), @Staging o @EscenarioGestorCursos.&lt;br /&gt;En función del despliegue, el gestor de beans (Manager) inyectará un bean u otro.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Web Beans Vs Enterprise Web Beans&lt;/span&gt;&lt;br /&gt;Razones para elegir Enterprise Web Beans:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;configuración de transacciones y seguridad a nivel de métodos (no de clase)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;gestión de la concurrencia&lt;br /&gt;&lt;/li&gt;&lt;li&gt;pooling de stateless components o (pasivación y activación) mantener estado de statefull components&lt;/li&gt;&lt;li&gt;RMI y WebServices&lt;/li&gt;&lt;li&gt;Timer y metodos asíncronos&lt;/li&gt;&lt;/ul&gt;Si no necesitamos lo anterior un Web Bean servirá perfectamente.&lt;br /&gt;Para convertir un Web Bean en un Enterprise Web Bean unicamente añadiremos: @Stateless,&lt;br /&gt;@Stateful or @Singleton.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Producer methods - Metodos Productores&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Son métodos que ejecuta el contenedor de Web Beans, es decir: el Manager, cuando crea una instancia de Web Bean. Generalmente los fines de estos métodos es inyectar valores (Web Beans) en contextos de la aplicación, y por tanto que sean visibles a otros Web Beans del mismo contexto.&lt;br /&gt;&lt;br /&gt;Es muy interesante el ejemplo que trae el tutorial, al inyectar la conexión de la base de datos en el contexto de request, para de esa forma asegurarnos que la conexión se destruye después de el evento de tipo request.&lt;br /&gt;&lt;br /&gt;@Produces @RequestScoped Connection connect(User user) {&lt;br /&gt;       return createConnection( user.getId(), user.getPassword() );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Inyección de Dependencias&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3 tipos de inyección:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;en el método constructor @Initializer public Checkout(ShoppingCart cart) {...}&lt;br /&gt;&lt;/li&gt;&lt;li&gt;en el método setter de la propiedad correspondiente: @Initializer void setShoppingCart(ShoppingCart cart)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;directamente en la propiedad: private @Current ShoppingCart cart;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;La inyección se produce en alguna de las fases de la instanciación por parte del Web Bean Manager, pero siempre durante la instanciación. (al acabar la instanciación y la inyección se hace una llamada al método [si existe] anotado con @PostConstruct)&lt;br /&gt;&lt;br /&gt;... voy por Binding Annotations... capitulo 3.1 ... mañana sigo!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-7353075733403556518?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/7353075733403556518/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=7353075733403556518&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7353075733403556518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7353075733403556518'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/12/introduccion-web-beans.html' title='Introduccion a Web Beans'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1822195169273450862</id><published>2008-12-02T04:08:00.000-08:00</published><updated>2008-12-02T04:09:23.090-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RUBY'/><title type='text'>Videos de presentacion de aplicaciones con RUBY</title><content type='html'>&lt;a href="http://rubyconf2008.confreaks.com/"&gt;http://rubyconf2008.confreaks.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1822195169273450862?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1822195169273450862/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1822195169273450862&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1822195169273450862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1822195169273450862'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/12/videos-de-presentacion-de-aplicaciones.html' title='Videos de presentacion de aplicaciones con RUBY'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1451745388078311006</id><published>2008-12-02T03:51:00.000-08:00</published><updated>2008-12-02T03:53:03.403-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 2'/><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><title type='text'>Ejemplo de seam con maven</title><content type='html'>Ejemplo booking de seamframework mavenizado y funciona!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jboss.org/community/docs/DOC-10763"&gt;http://www.jboss.org/community/docs/DOC-10763&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1451745388078311006?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1451745388078311006/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1451745388078311006&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1451745388078311006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1451745388078311006'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/12/ejemplo-de-seam-con-maven.html' title='Ejemplo de seam con maven'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-5150333141948680983</id><published>2008-12-01T04:51:00.000-08:00</published><updated>2008-12-01T04:52:57.073-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webdriver'/><title type='text'>webdriver - herramienta de desarrollo para la automatizacion de test de aplicaciones web</title><content type='html'>&lt;div id="pname"&gt;  &lt;a href="http://code.google.com/p/webdriver/wiki/GettingStarted" style="text-decoration: none; color: rgb(0, 0, 0);"&gt;http://code.google.com/p/webdriver/wiki/GettingStarted&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;/div&gt;  &lt;div id="psum"&gt;  &lt;i&gt;&lt;a href="http://code.google.com/p/webdriver/" style="text-decoration: none; color: rgb(0, 0, 0);"&gt;A developer focused tool for automated testing of webapps&lt;/a&gt;&lt;/i&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-5150333141948680983?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/5150333141948680983/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=5150333141948680983&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5150333141948680983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5150333141948680983'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/12/webdriver-herramienta-de-desarrollo.html' title='webdriver - herramienta de desarrollo para la automatizacion de test de aplicaciones web'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1943916458156533627</id><published>2008-12-01T04:23:00.000-08:00</published><updated>2008-12-01T04:28:05.009-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mock'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Mockito'/><title type='text'>Mockito - Nueva generacion de easymock</title><content type='html'>Otra noticia: para hacer pruebas de caja blanca acaba de aparecer esta herramienta Mockito que promete mejorar EasyMock y Jmock&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/mockito/"&gt;http://code.google.com/p/mockito/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.infoq.com/news/2008/09/mockito-1.5"&gt;http://www.infoq.com/news/2008/09/mockito-1.5&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1943916458156533627?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1943916458156533627/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1943916458156533627&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1943916458156533627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1943916458156533627'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/12/mockito-nueva-generacion-de-easymock.html' title='Mockito - Nueva generacion de easymock'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-4253623165688264848</id><published>2008-12-01T03:31:00.000-08:00</published><updated>2008-12-01T03:33:31.274-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='swing'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>FEST - Pruebas a aplicaciones Swing</title><content type='html'>aquí un tutorial de FEST: &lt;a href="http://www.javaworld.com/javaworld/jw-07-2007/jw-07-fest.html"&gt;http://www.javaworld.com/javaworld/jw-07-2007/jw-07-fest.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;homepage:&lt;br /&gt;&lt;a href="http://code.google.com/p/fest/"&gt;http://code.google.com/p/fest/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-4253623165688264848?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/4253623165688264848/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=4253623165688264848&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4253623165688264848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4253623165688264848'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/12/fest-pruebas-aplicaciones-swing.html' title='FEST - Pruebas a aplicaciones Swing'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-8053221059921390111</id><published>2008-12-01T03:20:00.001-08:00</published><updated>2008-12-01T03:30:57.865-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Selenium web application testing</title><content type='html'>Es un pluging de Firefox para automatizar pruebas de web evitando el tipico proceso de abrir web, click en enlace, introducir valor en formulario, comprobar resultado .... es decir una herramienta que evita que el desarrollador se deprima!&lt;br /&gt;&lt;br /&gt;web: &lt;a href="http://selenium.seleniumhq.org/"&gt;http://selenium.seleniumhq.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-8053221059921390111?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/8053221059921390111/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=8053221059921390111&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8053221059921390111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8053221059921390111'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/12/selenium-web-application-testing.html' title='Selenium web application testing'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-4397856549704999435</id><published>2008-12-01T03:15:00.000-08:00</published><updated>2008-12-01T05:05:55.243-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='JBehave'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Jbehave- 2 parte</title><content type='html'>El objetivo es que el desarrollo se centre en el estudio de los comportamientos de un programa (BDD) en vez de sus salidas (TDD)&lt;br /&gt;&lt;br /&gt;En un test de comportamientos existen como minimo 3 archivos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;un fichero de texto con una forma estandarizada con la descricpción del comportamiento&lt;/li&gt;&lt;li&gt;una clase java que hereda de Scenario y que cumple el rol de describir el escenario&lt;br /&gt;&lt;/li&gt;&lt;li&gt;una clase java que herada de Steps y que cumple el rol de describir los pasos del comportamiento&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Con JBehave primero tenemos que escribir (y guardar) un fichero de texto con la descripcion del comportamiento esperado (Give, When, Then ). El nombre del fichero tiene que coincidir con el nombre de la clase que cumple el rol de Scenario. En el constructor del scenario se le pasa el objeto de tipo Steps (que su clase padre es de tipo Steps) en el que se implementan los metodos que se corresponden con la descripción del comportamiento. Se utiliza anotaciones para identificar dichos metodos con el paso correspondiente del comportamiento especificado en el fichero de texto&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;repositorio con ejemplo de logging muy simplificado:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/ceacea/source/browse/trunk/jbehave/src/logging?spec=svn26&amp;amp;r=26"&gt;http://code.google.com/p/ceacea/source/browse/trunk/jbehave/src/logging?spec=svn26&amp;amp;r=26&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;librerias necesarias: &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;junit-4.4.jar&lt;/li&gt;&lt;li&gt;jbehave-core-2.2-SNAPSHOT.jar&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/java/library/j-cq09187/index.html?ca=dgr-lnxw9djbehavetdd&amp;amp;S_TACT=105AGX59&amp;amp;S_CMP=GR"&gt;http://www.ibm.com/developerworks/java/library/j-cq09187/index.html?ca=dgr-lnxw9djbehavetdd&amp;amp;S_TACT=105AGX59&amp;amp;S_CMP=GR&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;el comportamiento se puede entender como un condicional: If, And, Then en vez de Give, When, Then para que resulte más familiar al desarrollador&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-4397856549704999435?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/4397856549704999435/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=4397856549704999435&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4397856549704999435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4397856549704999435'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/12/jbehave-2-parte.html' title='Jbehave- 2 parte'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-2644543636970556183</id><published>2008-12-01T01:23:00.000-08:00</published><updated>2008-12-01T01:27:45.706-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='JIVE'/><title type='text'>JIVE o debugging hacia atras</title><content type='html'>&lt;p&gt;A primera vista para un desarrollador java, JIVE es una herramienta para eclipse para hacer debugging hacia atras y hacia delante. Según su web: JIVE es un espacio interactivo de ejecución de programas para eclipse que proporciona un acercamiento declarativo y visual en la depuración de un programa orientado a objetos. Puede ser usado con fines pedagogicos ...&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.eclipsecon.org/2008/?page=sub/&amp;amp;id=444"&gt;http://www.eclipsecon.org/2008/?page=sub/&amp;amp;id=444&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cse.buffalo.edu/jive/"&gt;http://www.cse.buffalo.edu/jive/&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-2644543636970556183?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/2644543636970556183/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=2644543636970556183&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2644543636970556183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2644543636970556183'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/12/jive-o-debugging-hacia-atras.html' title='JIVE o debugging hacia atras'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-304417015832295555</id><published>2008-11-30T13:21:00.000-08:00</published><updated>2008-11-30T13:27:28.005-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BDD'/><category scheme='http://www.blogger.com/atom/ns#' term='JBehave'/><title type='text'>desarrollo orientada a comportamientos - Behaviour-driven development BDD</title><content type='html'>Acabo de enterarme que existe este tipo de desarrollo: orientado a comportamientos (behave)...&lt;br /&gt;En teoría es una evolución del desarrollo orientado a pruebas (TDD)...&lt;br /&gt;Y por lo visto aparte de determinar (concretar) en el desarrollo, el numero de escenarios y de pasos y de resultados que constituyen un programa. Por lo visto también hace el desarrollo más inteligible, o lo que es lo mismo lo hace más entendible y comunicable (la gran barrera en el desarrollo en grupo...)&lt;br /&gt;&lt;br /&gt;Por ahora me he enterado que existe esta herramienta: &lt;a href="http://jbehave.org/"&gt;JBehave&lt;/a&gt; con lo que se puede ir investigando un poquito más&lt;br /&gt;&lt;br /&gt;Seguiré escribiendo a medida que lo utilice con los correspondientes enlaces a repositorio svn para descargarse&lt;br /&gt;ciao!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-304417015832295555?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/304417015832295555/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=304417015832295555&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/304417015832295555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/304417015832295555'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/11/desarrollo-orientada-comportamientos.html' title='desarrollo orientada a comportamientos - Behaviour-driven development BDD'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1967051393769240668</id><published>2008-11-05T05:11:00.001-08:00</published><updated>2008-11-05T05:12:13.817-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apache2'/><title type='text'>problemas con los charset en apache.. si otra vez</title><content type='html'>arreglado con este comentario ...&lt;br /&gt;encontrado en &lt;a href="http://lubrin.org/spip.php?article148"&gt;http://lubrin.org/spip.php?article148&lt;/a&gt;&lt;br /&gt;------&lt;br /&gt;&lt;p class="spip"&gt;&lt;small&gt;Muchisimas gracias por este fantástico tutorial. Se agracede muchísimo la ayuda cuando uno esta empezando…&lt;/small&gt;&lt;/p&gt;  &lt;p class="spip"&gt;&lt;small&gt;En mi caso, no veía correctamente los caracteres de acentuación ni mi querida "ñ", que me servía apache. Después de devanarme los sesos di con un apaño.&lt;/small&gt;&lt;/p&gt;  &lt;p class="spip"&gt;&lt;small&gt;Decirle al apache que no sirva las páginas en UTF-8 editando el fichero (que en mi caso estaba en:)&lt;/small&gt;&lt;/p&gt;  &lt;p class="spip"&gt;&lt;small&gt;/etc/apache2/conf.d/charset&lt;/small&gt;&lt;/p&gt;  &lt;p class="spip"&gt;&lt;small&gt;y comentando la línea&lt;/small&gt;&lt;/p&gt;  &lt;p class="spip"&gt;&lt;small&gt;# AddDefaultCharset UTF-8&lt;/small&gt;&lt;/p&gt; &lt;small&gt;         &lt;/small&gt;&lt;p class="forum-repondre-message"&gt;------&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1967051393769240668?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1967051393769240668/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1967051393769240668&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1967051393769240668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1967051393769240668'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/11/problemas-con-los-charset-en-apache-si.html' title='problemas con los charset en apache.. si otra vez'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-940070483629659389</id><published>2008-10-06T05:40:00.000-07:00</published><updated>2008-10-06T05:47:52.687-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fit'/><title type='text'>Fit - acceptance testing tool</title><content type='html'>&lt;a href="http://fit.c2.com/"&gt;http://fit.c2.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Y esto para qué sirve?&lt;br /&gt;bueno en teoría para sacar adelante un software con calidad hace falta que el cliente vaya revisando (es decir: probando) continuamente las diferentes etapas del software a desarrollar, con el objetivo de ir modificando y concretando los casos de uso y las debidas respuestas del programa.&lt;br /&gt;Con este fin existen unas herramientas para pruebas de aceptación&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-940070483629659389?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/940070483629659389/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=940070483629659389&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/940070483629659389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/940070483629659389'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/10/fit-acceptance-testing-tool.html' title='Fit - acceptance testing tool'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-2177538588059834079</id><published>2008-10-06T05:26:00.000-07:00</published><updated>2008-10-06T05:33:30.465-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Twitter</title><content type='html'>Acabo de encontrar esta herramienta que sirve para estar en contacto y sobre todo saber en que andamos, es decir en que estamos empleando nuestro tiempo&lt;br /&gt;&lt;a href="http://twitter.com/home"&gt;http://twitter.com/home&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;y para saber en que ando yo: &lt;a href="http://twitter.com/juanantonioruz"&gt;http://twitter.com/juanantonioruz&lt;/a&gt;&lt;br /&gt;saludos!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-2177538588059834079?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/2177538588059834079/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=2177538588059834079&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2177538588059834079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2177538588059834079'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/10/twitter.html' title='Twitter'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-7518846744012767122</id><published>2008-10-06T05:22:00.000-07:00</published><updated>2008-10-06T05:26:01.136-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam'/><category scheme='http://www.blogger.com/atom/ns#' term='Ivy'/><title type='text'>Seam Framework con Ivy en la gestion de dependencias</title><content type='html'>&lt;a href="http://in.relation.to/Bloggers/ManagingTheDependenciesOfASeamgenProjectWithIvy"&gt;http://in.relation.to/Bloggers/ManagingTheDependenciesOfASeamgenProjectWithIvy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-7518846744012767122?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/7518846744012767122/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=7518846744012767122&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7518846744012767122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7518846744012767122'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/10/seam-framework-con-ivy-en-la-gestion-de.html' title='Seam Framework con Ivy en la gestion de dependencias'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-4836607441624321530</id><published>2008-10-06T05:16:00.000-07:00</published><updated>2008-10-06T05:21:36.717-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gestion de dependencias'/><category scheme='http://www.blogger.com/atom/ns#' term='Ivy'/><title type='text'>Ivy (+ANT) como alternativa a MAVEN</title><content type='html'>Acabo de leer que existe esta herramienta Ivy (&lt;a href="http://ant.apache.org/ivy/"&gt;http://ant.apache.org/ivy/&lt;/a&gt;) para la gestión de dependencias en Java. ¿En qué se diferencia  de MAVEN? y ¿Por qué utilizarlo? Pues MAVEN hace más cosas pero relacionadas con otros ámbitos, tal como estandarización de proyectos. Mientras que Ivy trabaja unicamente con las dependencias, y si es verdad lo que prometen, es más fácil de extender nuestros poryectos (en MAVEN con el complicado superpom)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-4836607441624321530?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/4836607441624321530/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=4836607441624321530&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4836607441624321530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4836607441624321530'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/10/ivy-ant-como-alternativa-maven.html' title='Ivy (+ANT) como alternativa a MAVEN'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-7659670009397782108</id><published>2008-08-06T09:39:00.000-07:00</published><updated>2008-08-06T09:40:48.086-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSTL'/><category scheme='http://www.blogger.com/atom/ns#' term='Facelets'/><title type='text'>ui:repeat no cambia el valor de un c:set</title><content type='html'>Dentro de un bucle generado con facelets y su correspndiente etiqueta ui:repeat no conseguimos afectar a una variable de tipo incremento en cada una de las pasadas del bucle. Para ello tenemos que utilizar c:forEach y c:set&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-7659670009397782108?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/7659670009397782108/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=7659670009397782108&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7659670009397782108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7659670009397782108'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/08/uirepeat-no-cambia-el-valor-de-un-cset.html' title='ui:repeat no cambia el valor de un c:set'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-3114766083023192550</id><published>2008-08-03T09:43:00.001-07:00</published><updated>2008-08-03T10:45:56.592-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>arrancar 2 instancias de jboss</title><content type='html'>http://manoharviswanathan.com/blog/tech/running-multiple-jboss-instances-on-the-same-machine/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;arranca jboss en una ip: run.sh -b ip&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-3114766083023192550?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/3114766083023192550/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=3114766083023192550&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3114766083023192550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3114766083023192550'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/08/arrancar-2-instancias-de-jboss.html' title='arrancar 2 instancias de jboss'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-7445048734036720687</id><published>2008-06-19T03:51:00.000-07:00</published><updated>2008-11-12T18:01:10.087-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='war'/><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><title type='text'>MAVEN un war que depende de otro war</title><content type='html'>el pom del primer war (es decir la dependencia es normal y corriente)&lt;br /&gt;&lt;br /&gt;el que va a utilizar la dependencia es:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;declaración de la dependencia como tipo war&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_8Ex04A8y_hc/SFo6whL3m8I/AAAAAAAAAZQ/V4FwnVF1tyo/s1600-h/Imagen+8.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_8Ex04A8y_hc/SFo6whL3m8I/AAAAAAAAAZQ/V4FwnVF1tyo/s400/Imagen+8.png" alt="" id="BLOGGER_PHOTO_ID_5213544123851054018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;cambio en la configuración del plugin de maven : maven-war-plugin para que al crear el war tenga en cuenta la otra dependencia y la empaquete de forma "especial" es decir qeu no empaquete algunos archivos 2 veces por ejemplo web.xml. En este caso solo incluye un archivo indexBasic.jsp&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_8Ex04A8y_hc/SFo7VgDujMI/AAAAAAAAAZY/DqGOmCWGcjM/s1600-h/Imagen+10.png"&gt;&lt;img style="cursor: pointer; width: 544px; height: 281px;" src="http://1.bp.blogspot.com/_8Ex04A8y_hc/SFo7VgDujMI/AAAAAAAAAZY/DqGOmCWGcjM/s400/Imagen+10.png" alt="" id="BLOGGER_PHOTO_ID_5213544759203630274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;y por ultimo configuramos nuestro servidor para que tenga en cuenta el directorio nuevo que se ha creado en el paquete war...&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_8Ex04A8y_hc/SFo7j9KL-4I/AAAAAAAAAZg/szPALcI8XdM/s1600-h/Imagen+11.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_8Ex04A8y_hc/SFo7j9KL-4I/AAAAAAAAAZg/szPALcI8XdM/s400/Imagen+11.png" alt="" id="BLOGGER_PHOTO_ID_5213545007533521794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;y esto permite pasar los archivos jsp y resources de un war a otro.... otra cosa sería que las clases de la aplicación war que vamos a utilizar como dependencia todavía no se escanean bien por el servidor, supongo que hay que hacer una configuración extra.... de lo contrario unicamente en los wars tendremos resources y las clases en los jars...&lt;br /&gt;&lt;br /&gt;**** PARA QUE FUNCIONE mvn jetty:run-explode con mvn jetty:run no furula!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-7445048734036720687?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/7445048734036720687/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=7445048734036720687&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7445048734036720687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7445048734036720687'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/06/maven-un-war-que-depende-de-otro-war.html' title='MAVEN un war que depende de otro war'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_8Ex04A8y_hc/SFo6whL3m8I/AAAAAAAAAZQ/V4FwnVF1tyo/s72-c/Imagen+8.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-8791421967246995835</id><published>2008-06-12T18:09:00.000-07:00</published><updated>2008-11-12T18:01:10.296-08:00</updated><title type='text'>compilar en maven con java 1.5</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_8Ex04A8y_hc/SFHI-QZcObI/AAAAAAAAAYw/TY7miv8L_fs/s1600-h/Imagen+3.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_8Ex04A8y_hc/SFHI-QZcObI/AAAAAAAAAYw/TY7miv8L_fs/s400/Imagen+3.png" alt="" id="BLOGGER_PHOTO_ID_5211167215723493810" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-8791421967246995835?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/8791421967246995835/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=8791421967246995835&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8791421967246995835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8791421967246995835'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/06/compilar-en-maven-con-java-15.html' title='compilar en maven con java 1.5'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_8Ex04A8y_hc/SFHI-QZcObI/AAAAAAAAAYw/TY7miv8L_fs/s72-c/Imagen+3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-6819900315840231231</id><published>2008-06-12T18:03:00.000-07:00</published><updated>2008-06-12T18:04:50.333-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><title type='text'>Instalar librerias en repositorio local de maven una a una</title><content type='html'>cuando el repositorio remoto no tiene dicha libreria nos sale por consola el comando que debemos insertar, antes modificamos /path/to/file por el path real a la librería que nos hemos manualmente descargado.&lt;br /&gt;mvn install:install-file -DgroupId=com.google.gdata -DartifactId=gdata-core -Dversion=1.0 -Dpackaging=jar -Dfile=&lt;span style="font-weight: bold;"&gt;/path/to/file&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-6819900315840231231?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/6819900315840231231/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=6819900315840231231&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6819900315840231231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6819900315840231231'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/06/instalar-librerias-en-repositorio-local.html' title='Instalar librerias en repositorio local de maven una a una'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-8020353382978476856</id><published>2008-06-10T04:01:00.000-07:00</published><updated>2008-06-10T04:06:11.937-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ANT'/><category scheme='http://www.blogger.com/atom/ns#' term='MACOSX'/><title type='text'>Instalar ANT en MacOS</title><content type='html'>&lt;a href="http://www.asceticmonk.com/blog/?p=388"&gt;http://www.asceticmonk.com/blog/?p=388&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;en ese enlace se habla de exportar variables al PATH en MACOS&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-8020353382978476856?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/8020353382978476856/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=8020353382978476856&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8020353382978476856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8020353382978476856'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/06/instalar-ant-en-macos.html' title='Instalar ANT en MacOS'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-8320867089087600906</id><published>2008-04-04T03:43:00.000-07:00</published><updated>2008-04-04T03:50:28.484-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Tipos de asociación: Composición - Agregación - Dependencia</title><content type='html'>Tipos de asociación:&lt;br /&gt;La &lt;span style="font-weight: bold;"&gt;composición&lt;/span&gt; está relacionada con el &lt;span style="font-weight: bold;"&gt;valor&lt;/span&gt; del objeto, es decir el objeto que lo contiene se encarga de su ciclo de vida (inicialización, mantenimiento y limpieza)&lt;br /&gt;La &lt;span style="font-weight: bold;"&gt;agregación&lt;/span&gt; está relacionada con la &lt;span style="font-weight: bold;"&gt;referencia&lt;/span&gt; a un objeto:&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-8320867089087600906?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/8320867089087600906/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=8320867089087600906&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8320867089087600906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8320867089087600906'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/04/composicin-agregacin.html' title='Tipos de asociación: Composición - Agregación - Dependencia'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-2240997387130206662</id><published>2008-03-27T04:20:00.000-07:00</published><updated>2008-11-12T18:01:10.793-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='excepciones'/><title type='text'>Programación pesimista, programación orientada a excepciones (anomalías)</title><content type='html'>Una excepción en java es simplemente una clase que hereda de la clase java.lang.Exception que extiende a su vez de la clase java.lang.Throwable así que empezamos echando un vistazo a el API de Throwable: &lt;a href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Throwable.html"&gt;http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Throwable.html&lt;/a&gt;&lt;br /&gt;Como se comenta en la descripción de la clase:&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;Only objects that are instances of this  class (or one of its subclasses) are thrown by the Java Virtual Machine or  can be thrown by the Java &lt;/span&gt;&lt;code style="font-style: italic; color: rgb(102, 102, 102);"&gt;throw&lt;/code&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt; statement.&lt;/span&gt;&lt;br /&gt;Se puede apreciar que las clases que herendan de Throwable son Error y Exception. Mientras que si lanzamos un error no hay que declarlo en la definición del método, si lanzamos una exception si hay que declarlo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_8Ex04A8y_hc/R-uIzP5fyzI/AAAAAAAAAM8/hiKEZDx2dz8/s1600-h/Imagen+2.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_8Ex04A8y_hc/R-uIzP5fyzI/AAAAAAAAAM8/hiKEZDx2dz8/s400/Imagen+2.png" alt="" id="BLOGGER_PHOTO_ID_5182386210242284338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Aunque no estamos obligados a declarar el error en la definición del método lo podríamos haber hecho de las siguientes maneras:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;public void pruebaLanzaError() throws Error&lt;/li&gt;&lt;li&gt;public void pruebaLanzaError() throws Throwable&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Pero en este caso si invocamos el método desde otra parte de nuestro código si estamos obligados a hacernos cargo de este error:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_8Ex04A8y_hc/R-uKHP5fy0I/AAAAAAAAANE/pZVK5cFC1E4/s1600-h/Imagen+3.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_8Ex04A8y_hc/R-uKHP5fy0I/AAAAAAAAANE/pZVK5cFC1E4/s400/Imagen+3.png" alt="" id="BLOGGER_PHOTO_ID_5182387653351295810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Si entendemos la excepción como un comportamiento anómalo de nuestro programa (o parte de programa), podemos tener en cuenta todos las anomalías de nuestro programa como pueden ser: objetos nulos, valores negativos ...&lt;br /&gt;y actuando en consecuencia es decir lanzando excepciones concretas respondiendo a comportamientos anomalos concretos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-2240997387130206662?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/2240997387130206662/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=2240997387130206662&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2240997387130206662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2240997387130206662'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/03/programacin-pesimista-programacin.html' title='Programación pesimista, programación orientada a excepciones (anomalías)'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_8Ex04A8y_hc/R-uIzP5fyzI/AAAAAAAAAM8/hiKEZDx2dz8/s72-c/Imagen+2.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-2969514200491663949</id><published>2008-01-24T05:49:00.000-08:00</published><updated>2008-01-24T05:54:07.883-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Script linux para recorrer directorio y cambiar nombre a archivos</title><content type='html'>Bueno parecía más difícil de lo que al final fue:&lt;br /&gt;&lt;br /&gt;la función para recorrer directorios es la muy famosa &lt;span style="font-weight: bold;"&gt;ls, &lt;/span&gt;la salida que da se lo pasamos a un bucle while y en cada iteración hacemos un cp ___ ____&lt;br /&gt;&lt;br /&gt;Al pasarle variables al script las recogemos por el orden de entrada es decir si ejecutamos el script&lt;br /&gt;# hola.sh Manolo&lt;br /&gt;pues dentro del script accedemos a la variable Manolo con $1 ya que $0 es el nombre del script="hola.sh"&lt;br /&gt;&lt;br /&gt;así me ha quedado a mi:&lt;br /&gt;&lt;br /&gt;ls  $2 |&lt;br /&gt;while read name&lt;br /&gt;do&lt;br /&gt;echo "nombre: $name  Extension:$1 Directorio: $2"&lt;br /&gt;cp $2/$name $2/$1$name&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;y la llamada&lt;br /&gt;cambiarNombre.sh Miniatura_  /prueba&lt;br /&gt;&lt;br /&gt;y tendría el resultado de anteponer la palabra "Miniatura_" a el nombre de los archivos existentes en el directorio prueba&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-2969514200491663949?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/2969514200491663949/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=2969514200491663949&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2969514200491663949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2969514200491663949'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/01/script-linux-para-recorrer-directorio-y.html' title='Script linux para recorrer directorio y cambiar nombre a archivos'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-6155838322965373101</id><published>2008-01-16T11:54:00.000-08:00</published><updated>2008-01-16T11:56:15.472-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Obtener un string con el mensaje (stacktrace) de una excepción</title><content type='html'>&lt;span&gt;&lt;span&gt;&lt;span style="font-family:Verdana,Arial,Helvetica;font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;Exception ex = new Exception("something went wrong");&lt;br /&gt;StringWriter sw = new StringWriter();&lt;br /&gt;ex.printStackTrace(new PrintWriter(sw));&lt;br /&gt;String stacktrace = sw.toString();&lt;br /&gt;System.out.println("stacktrace = " + stacktrace);&lt;br /&gt;&lt;br /&gt;Conseguido en&lt;br /&gt;&lt;a href="http://www.jguru.com/faq/view.jsp?EID=571084"&gt;http://www.jguru.com/faq/view.jsp?EID=571084&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-6155838322965373101?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/6155838322965373101/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=6155838322965373101&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6155838322965373101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6155838322965373101'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2008/01/obtener-un-string-con-el-mensaje.html' title='Obtener un string con el mensaje (stacktrace) de una excepción'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-5424769174827620662</id><published>2007-11-13T03:18:00.000-08:00</published><updated>2007-11-13T03:20:57.352-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuraciones Seguridad Servidor'/><title type='text'>linux script copias seguridad</title><content type='html'>estos scripts se activan desde el archivo crontab&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;copidatabases.sh (mysql)&lt;/span&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;fecha=$(date +%y-%m-%d-%H-%M)&lt;br /&gt;DIRECTORIO_INICIAL=/var/lib/mysql&lt;br /&gt;DIRECTORIO_FINAL=$1&lt;br /&gt;&lt;br /&gt;mkdir $DIRECTORIO_FINAL/$fecha&lt;br /&gt;  for a in `ls $DIRECTORIO_INICIAL`&lt;br /&gt;  do&lt;br /&gt;        fname=`echo $a | tr A-Z a-z`&lt;br /&gt;&lt;br /&gt;        echo $DIRECTORIO_INICIAL/$a $DIRECTORIO_INICIAL/$fname&lt;br /&gt;        /usr/bin/mysqldump -u ADMIN --password=nickel $fname&gt;$DIRECTORIO_FINAL/$fecha/$fname.sql&lt;br /&gt;        done;&lt;br /&gt;  exit 0&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;copi.sh (directorios a incluir y tar)&lt;/span&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;DIAS=$3&lt;br /&gt;DIRECTORIO_INICIAL=$1&lt;br /&gt;DIRECTORIO_FINAL=$2&lt;br /&gt;fecha=$(date +%y-%m-%d-%H-%M)&lt;br /&gt;find $DIRECTORIO_INICIAL -mtime -$DIAS \! -type d | cat &gt;  $DIRECTORIO_FINAL$fecha.txt&lt;br /&gt;tar -cv -T $DIRECTORIO_FINAL$fecha.txt -f $DIRECTORIO_FINAL$fecha.tar&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-5424769174827620662?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/5424769174827620662/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=5424769174827620662&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5424769174827620662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5424769174827620662'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/11/linux-script-copias-seguridad.html' title='linux script copias seguridad'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-4745316574210403944</id><published>2007-11-08T05:52:00.000-08:00</published><updated>2007-12-25T09:06:15.701-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='navidad'/><category scheme='http://www.blogger.com/atom/ns#' term='Soluciones'/><category scheme='http://www.blogger.com/atom/ns#' term='explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><title type='text'>cache de explorer no busca actualizacion de informacion</title><content type='html'>En herramientas&gt;opciones de internet&lt;br /&gt;pestaña general, información relativa a archivos temporales de internet&gt; configuración&lt;br /&gt;Comprobar: automaticamente&lt;br /&gt;&lt;br /&gt;o eso  o mandar un parametro en el get que sea por ejemplo la hora&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-4745316574210403944?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/4745316574210403944/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=4745316574210403944&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4745316574210403944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4745316574210403944'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/11/cache-de-explorer-no-busca.html' title='cache de explorer no busca actualizacion de informacion'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-6344323296909552323</id><published>2007-10-24T12:28:00.000-07:00</published><updated>2007-12-25T09:07:05.710-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>enum con propiedades, para controlar los mensajes al usuario</title><content type='html'>&lt;a href="http://java.sun.com/docs/books/tutorial/java/javaOO/enum.html"&gt;http://java.sun.com/docs/books/tutorial/java/javaOO/enum.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;public enum ReflectionMensaje {&lt;br /&gt;       ILEGAL_ACCESO("ilegal acceso al metodo: "),&lt;br /&gt;       METODO_INEXISTENTE("No existe el metodo: "),&lt;br /&gt;       EXCEPCION_INVOCACION("excepcion de invocacion en el metodo: ");&lt;br /&gt;&lt;br /&gt;       private final String mensaje;   // in kilograms&lt;br /&gt;&lt;br /&gt;       ReflectionMensaje(String m) {&lt;br /&gt;           this.mensaje = m;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;       public String toString() {&lt;br /&gt;           return mensaje;    //To change body of overridden methods use File | Settings | File Templates.&lt;br /&gt;       }&lt;br /&gt;   }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-6344323296909552323?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/6344323296909552323/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=6344323296909552323&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6344323296909552323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6344323296909552323'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/10/enum-con-propiedades-para-controlar-los.html' title='enum con propiedades, para controlar los mensajes al usuario'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-7549361819866577650</id><published>2007-10-18T03:38:00.000-07:00</published><updated>2007-10-18T03:41:35.924-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='loggin'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>configure log en jboss</title><content type='html'>hay que editar el archivo server/default/conf/log4j.xml&lt;br /&gt;e incluir nuevas categorias&lt;br /&gt;&lt;br /&gt; &amp;lt;category name="oracle.adf"&amp;gt;&lt;br /&gt;&amp;lt;priority value="WARN"/&amp;gt;&lt;br /&gt;&amp;lt;/category&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-7549361819866577650?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/7549361819866577650/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=7549361819866577650&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7549361819866577650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7549361819866577650'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/10/configure-log-en-jboss.html' title='configure log en jboss'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-7959431160503977610</id><published>2007-10-16T10:14:00.000-07:00</published><updated>2007-10-16T10:42:39.533-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam'/><title type='text'>jndiPatter en components.xml</title><content type='html'>&lt;span style="font-size:85%;"&gt;&amp;lt;&lt;/span&gt;component name="org.jboss.seam.core.init"&amp;gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;&lt;/span&gt;    property&amp;gt; name="jndiPattern" pruebaSevilla/#{ejbName}/local/  &amp;lt;property&amp;gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;&lt;/span&gt;/component&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-7959431160503977610?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/7959431160503977610/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=7959431160503977610&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7959431160503977610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7959431160503977610'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/10/jndipatter-en-componentsxml.html' title='jndiPatter en components.xml'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-8539723471633865202</id><published>2007-10-10T04:42:00.000-07:00</published><updated>2007-10-10T04:44:03.171-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><title type='text'>Acceder a componente stateless de seam</title><content type='html'>como es un componente sin estado no se puede acceder a través de la función:&lt;br /&gt;    Contexts.getSessionContext()&lt;br /&gt;entonces:&lt;br /&gt;Component.getInstance(nombre);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-8539723471633865202?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/8539723471633865202/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=8539723471633865202&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8539723471633865202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8539723471633865202'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/10/acceder-componente-stateless-de-seam.html' title='Acceder a componente stateless de seam'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1217452308874423840</id><published>2007-10-04T01:48:00.000-07:00</published><updated>2007-10-04T02:12:18.195-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>How to specify platform independent file path?</title><content type='html'>&lt;a href="http://forum.java.sun.com/thread.jspa?threadID=640272&amp;amp;messageID=3761106"&gt;How to specify platform independent file path?&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WINDOWS&lt;/span&gt;&lt;br /&gt;File.separatorChar: \&lt;br /&gt;File.separator: \&lt;br /&gt;File.pathSeparator: ;&lt;br /&gt;File.pathSeparatorChar: ;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;LINUX&lt;/span&gt;&lt;br /&gt;File.separatorChar: /&lt;br /&gt;File.separator: /&lt;br /&gt;File.pathSeparator: ;&lt;br /&gt;File.pathSeparatorChar: ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Y una función para obtener el path url del archivo:&lt;br /&gt;      protected String damePathURL(String serverPathFile){&lt;br /&gt;        try{&lt;br /&gt;         return serverPathFile.replaceAll(File.separator, "/");&lt;br /&gt;        }catch(Exception e){&lt;br /&gt;            //lanzaría una excepción de tipo java.util.regex.PatternSyntaxException al intentar sustituir el File.Separator=\&lt;br /&gt;         return serverPathFile.replaceAll(File.separator+File.separator, "/");&lt;br /&gt;        }&lt;br /&gt;    }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1217452308874423840?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1217452308874423840/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1217452308874423840&amp;isPopup=true' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1217452308874423840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1217452308874423840'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/10/how-to-specify-platform-independent.html' title='How to specify platform independent file path?'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-4228390411982660253</id><published>2007-10-02T10:20:00.000-07:00</published><updated>2007-10-02T10:24:21.056-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><title type='text'>Mailing en seam</title><content type='html'>El ejemplo de seam-mail  muestra como funciona la libreria &lt;b&gt;jboss-seam-mail.jar&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Basicamente hay que añadir el componente :&lt;br /&gt;   mail:mail-session host="smtpHost" username="user" password="password"&lt;br /&gt;en el archivo WEB-INF/components.xml&lt;br /&gt;&lt;br /&gt;y en el archivo jsf, la declaración de tld&lt;br /&gt;                xmlns:m="http://jboss.com/products/seam/mail"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-4228390411982660253?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/4228390411982660253/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=4228390411982660253&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4228390411982660253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4228390411982660253'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/10/mailing-en-seam.html' title='Mailing en seam'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-2181909726491393706</id><published>2007-09-20T03:34:00.001-07:00</published><updated>2007-10-22T05:11:45.074-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='Soluciones'/><category scheme='http://www.blogger.com/atom/ns#' term='RichFaces'/><title type='text'>Actualiza richfaces3.1 en seam</title><content type='html'>Simplemente hay que quitar la librería actual de richfaces sustituirla por las 3 nuevas que trae la actualización:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;richfaces-ui-3.1.0.jar&lt;/li&gt;&lt;li&gt;richfaces-api-3.1.0.jar&lt;/li&gt;&lt;li&gt;richfaces-impl-3.1.0.jar&lt;/li&gt;&lt;/ul&gt;y eliminar la actual: ajax4jsf*.jar que ya está contenida en la actualización de las anteriores&lt;br /&gt;&lt;br /&gt;por mi parte he incluído el modulo en application.xml&lt;br /&gt;   &amp;gt;module &amp;gt;&lt;br /&gt;       &amp;gt;java &amp;gt;richfaces-api-3.1.0.jar &amp;gt;/java &amp;gt;&lt;br /&gt;    &amp;gt;/module &amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;encontrado en el forum de jboss-seam:&lt;br /&gt;&lt;a href="http://www.jboss.com/index.html?module=bb&amp;amp;op=viewtopic&amp;amp;t=118650"&gt;http://www.jboss.com/index.html?module=bb&amp;amp;op=viewtopic&amp;amp;t=118650&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-2181909726491393706?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/2181909726491393706/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=2181909726491393706&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2181909726491393706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2181909726491393706'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/09/actualiza-richfaces31-en-seam.html' title='Actualiza richfaces3.1 en seam'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-5549041769488162015</id><published>2007-09-20T02:01:00.001-07:00</published><updated>2007-09-20T02:01:37.872-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>linux symbolic link</title><content type='html'>&lt;div class="divider_dash_grey_bt"&gt;&lt;br /&gt;&lt;/div&gt;      &lt;pre style="border-right: 2px solid rgb(221, 221, 221); border-bottom: 2px solid rgb(221, 221, 221); padding: 10px; background-color: rgb(255, 255, 204);"&gt;ln -s [TARGET DIRECTORY OR FILE] ./[SHORTCUT]&lt;/pre&gt; &lt;pre style="border-right: 2px solid rgb(221, 221, 221); border-bottom: 2px solid rgb(221, 221, 221); padding: 10px; background-color: rgb(255, 255, 204);"&gt;ln -s /usr/local/apache/logs ./logs&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-5549041769488162015?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/5549041769488162015/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=5549041769488162015&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5549041769488162015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5549041769488162015'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/09/linux-symbolic-link.html' title='linux symbolic link'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-5874734957894699811</id><published>2007-09-14T03:13:00.000-07:00</published><updated>2007-09-14T03:14:31.889-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Volver a linkear un directorio con subversion en google.code</title><content type='html'>Borrar todas las carpetas presentes en ese directorio con nombre .svn y después seleccionar share directory&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-5874734957894699811?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/5874734957894699811/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=5874734957894699811&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5874734957894699811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5874734957894699811'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/09/volver-linkear-un-directorio-con.html' title='Volver a linkear un directorio con subversion en google.code'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1025321056801677863</id><published>2007-09-11T06:04:00.000-07:00</published><updated>2007-09-11T06:14:15.517-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='i18n'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>internacionalización en jboss seam, varios ficheros de mensajes, herencia</title><content type='html'>&lt;span style="font-size:85%;"&gt;Hay que incluir el componente en el components.xml&lt;br /&gt;distinguiendo los nombres de cada grupo de mensajes&lt;br /&gt;&lt;br /&gt;&amp;lt;core:resource-bundle&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;core:bundle-names&amp;gt;&lt;br /&gt;&lt;br /&gt;            &amp;lt;value&amp;gt;messages&amp;lt;/value&amp;gt;&lt;br /&gt;&lt;br /&gt;            &amp;lt;value&amp;gt;zmessages&amp;lt;/value&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;/core:bundle-names&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;/core:resource-bundle&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para acceder desde el jsf dos formas (en la mayoría de las ocasiones  la mejor es la segunda):&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;a través del mapa de mensajes #{messages['mensajeUsuario']}&lt;/li&gt;&lt;li&gt;a través de la sintaxis de punto #{messages.mensajeUsuario}&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Para acceder al componente de Messages desde la fase de invocación del programa (es decir siempre que no sea en el jsf esto es en las clases java que escribimos) hay que acceder de la siguiente forma:&lt;br /&gt;Stringn mensajeInternacionalizado=Messages.instance().get('mensajeUsuario')&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1025321056801677863?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1025321056801677863/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1025321056801677863&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1025321056801677863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1025321056801677863'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/09/internacionalizacin-en-jboss-seam.html' title='internacionalización en jboss seam, varios ficheros de mensajes, herencia'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-745293435932283925</id><published>2007-09-11T05:17:00.001-07:00</published><updated>2007-09-11T05:23:03.105-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='persistencia'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><title type='text'>Persistencia de propiedades de tipo Objeto no primitivo: Annotation Type Embedded</title><content type='html'>Hay que anotar la propiedad objeto con la anotacion @Embedded. Y el objeto en cuestión con la anotacion @Embeddable.&lt;br /&gt;Ej: &lt;br /&gt;@Embedded &lt;br /&gt;ClienteImagen fichero &lt;br /&gt;&lt;br /&gt;@Embeddable&lt;br /&gt;public class ClienteImagen {&lt;br /&gt;&lt;br /&gt;    String imgMini;&lt;br /&gt;    String imgZoom;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    public String getImgMini() {&lt;br /&gt;        return imgMini;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void setImgMini(String imgMini) {&lt;br /&gt;        this.imgMini = imgMini;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public String getImgZoom() {&lt;br /&gt;        return imgZoom;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void setImgZoom(String imgZoom) {&lt;br /&gt;        this.imgZoom = imgZoom;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://tom.tharrisx.homedns.org/sm3rdpartyref/hibernate-annotations-3.3.0.GA/doc/jpa-api/javax/persistence/Embedded.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-745293435932283925?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/745293435932283925/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=745293435932283925&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/745293435932283925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/745293435932283925'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/09/persistencia-de-propiedades-de-tipo.html' title='Persistencia de propiedades de tipo Objeto no primitivo: Annotation Type Embedded'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1742237955824165026</id><published>2007-09-10T01:49:00.000-07:00</published><updated>2007-09-10T02:20:54.220-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>language in lunux, locales</title><content type='html'>/etc/environment&lt;br /&gt;&lt;br /&gt;LANGUAGE="de_DE:de:en_GB:en"&lt;br /&gt;LANG=de_DE@euro&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;LC_ALL=es_ES@euro&lt;br /&gt;LANGUAGE=es_ES@euro&lt;br /&gt;LC_TYPE=es_ES@euro&lt;br /&gt;LANG=es_ES@euro&lt;br /&gt;&lt;br /&gt;export LANG=de_DE@euro&lt;br /&gt;&lt;br /&gt;Esto lanza un programa para reconfigurar las locales:&lt;br /&gt;dpkg-reconfigure locales&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En este momento las tengo en:&lt;br /&gt; locale&lt;br /&gt;LANG=de_DE@euro&lt;br /&gt;LC_CTYPE="de_DE@euro"&lt;br /&gt;LC_NUMERIC="de_DE@euro"&lt;br /&gt;LC_TIME="de_DE@euro"&lt;br /&gt;LC_COLLATE="de_DE@euro"&lt;br /&gt;LC_MONETARY="de_DE@euro"&lt;br /&gt;LC_MESSAGES="de_DE@euro"&lt;br /&gt;LC_PAPER="de_DE@euro"&lt;br /&gt;LC_NAME="de_DE@euro"&lt;br /&gt;LC_ADDRESS="de_DE@euro"&lt;br /&gt;LC_TELEPHONE="de_DE@euro"&lt;br /&gt;LC_MEASUREMENT="de_DE@euro"&lt;br /&gt;LC_IDENTIFICATION="de_DE@euro"&lt;br /&gt;LC_ALL=&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1742237955824165026?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1742237955824165026/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1742237955824165026&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1742237955824165026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1742237955824165026'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/09/language-in-lunux-locales.html' title='language in lunux, locales'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-6863821063189694570</id><published>2007-09-09T12:13:00.001-07:00</published><updated>2007-09-10T00:38:49.941-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Soluciones'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>jboss jems installer sin interface grafica (en servidor)</title><content type='html'>link:http://www.jboss.com/index.html?module=bb&amp;op=viewtopic&amp;amp;p=4025336&lt;br /&gt;java -jar jems-installer-1.2.0.jar -installGroup ejb3-clustered&lt;br /&gt;installpath=/opt/jboss-4.0.5&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-6863821063189694570?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/6863821063189694570/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=6863821063189694570&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6863821063189694570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6863821063189694570'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/09/jboss-jems-installer-sin-interface.html' title='jboss jems installer sin interface grafica (en servidor)'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-5253414692362573773</id><published>2007-09-06T10:10:00.001-07:00</published><updated>2007-09-06T10:10:33.776-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySql'/><title type='text'>Cambiar nombre de tabla en mysql</title><content type='html'>&lt;span class="syntax"&gt;&lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;ALTER&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;TABLE&lt;/span&gt;  &lt;span class="syntax_quote syntax_quote_backtick"&gt;`nombre`&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;RENAME&lt;/span&gt;  &lt;span class="syntax_quote syntax_quote_backtick"&gt;`NombreNuevo`&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_queryend"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-5253414692362573773?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/5253414692362573773/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=5253414692362573773&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5253414692362573773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5253414692362573773'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/09/cambiar-nombre-de-tabla-en-mysql.html' title='Cambiar nombre de tabla en mysql'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-4487025895595676997</id><published>2007-09-04T06:20:00.000-07:00</published><updated>2007-09-04T06:23:51.921-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Soluciones'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>Character-set en jboss requestURI</title><content type='html'>http://www.jboss.com/index.html?module=bb&amp;op=viewtopic&amp;amp;t=107804&lt;br /&gt;&lt;br /&gt;Connector port="8080" address="${jboss.bind.address}"  useBodyEncodingForURI="true"  URIEncoding="UTF-8"&lt;br /&gt;        maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"&lt;br /&gt;        emptySessionPath="true"&lt;br /&gt;        enableLookups="false" redirectPort="8443" acceptCount="100"&lt;br /&gt;        connectionTimeout="20000" disableUploadTimeout="true"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-4487025895595676997?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/4487025895595676997/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=4487025895595676997&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4487025895595676997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4487025895595676997'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/09/character-set-en-jboss-requesturi.html' title='Character-set en jboss requestURI'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-8421707319610406559</id><published>2007-08-31T05:18:00.000-07:00</published><updated>2007-08-31T05:19:34.384-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Intellij IDEA'/><title type='text'>articulos interesantes para programar en java con herramientas actuales</title><content type='html'>http://shrubbery.mynetgear.net/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-8421707319610406559?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/8421707319610406559/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=8421707319610406559&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8421707319610406559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8421707319610406559'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/08/articulos-interesantes-para-programar.html' title='articulos interesantes para programar en java con herramientas actuales'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1028188753651696065</id><published>2007-08-30T10:24:00.000-07:00</published><updated>2007-08-30T10:25:28.020-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Foro de discusión de Google Calendar</title><content type='html'>&lt;a href="http://groups.google.com/group/google-calendar-help-dataapi"&gt;http://groups.google.com/group/google-calendar-help-dataapi&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1028188753651696065?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1028188753651696065/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1028188753651696065&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1028188753651696065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1028188753651696065'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/08/foro-de-discusin-de-google-calendar.html' title='Foro de discusión de Google Calendar'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-6064874519197760135</id><published>2007-08-30T09:11:00.001-07:00</published><updated>2007-08-30T09:17:22.891-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='Soluciones'/><category scheme='http://www.blogger.com/atom/ns#' term='TestNG'/><title type='text'>Pruebas de unidad en Jboss Seam, implementar org.jboss.seam.log.Log con org.apache.commons.logging.Log</title><content type='html'>&lt;span style="font-size:85%;"&gt;Si intentamos probar un componente de Jboss Seam en aislamiento/unidad y este componente tiene una Log inyectado por Seam, tendremos un nullexception al lanzar la prueba, aquí dejo un ejemplo en el que creamos una clase que implementa &lt;/span&gt;&lt;span style="font-size:85%;"&gt;org.jboss.seam.log.Log y que accede a org.apache.commons.logging.Log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;public class BeanTest {&lt;br /&gt;&lt;br /&gt;@Test&lt;br /&gt;public void testBean(){&lt;br /&gt;    Bean bean=new Bean();&lt;br /&gt;    bean.log=new Logger();&lt;br /&gt;    bean.run();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;class Logger  implements org.jboss.seam.log.Log{&lt;br /&gt;      Log log = LogFactory.getLog(BeanTest.class);&lt;br /&gt;&lt;br /&gt;      public boolean isDebugEnabled() {&lt;br /&gt;          return log.isDebugEnabled(); &lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public boolean isErrorEnabled() {&lt;br /&gt;          return log.isErrorEnabled(); &lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public boolean isFatalEnabled() {&lt;br /&gt;          return log.isFatalEnabled();&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public boolean isInfoEnabled() {&lt;br /&gt;          return log.isInfoEnabled(); &lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public boolean isTraceEnabled() {&lt;br /&gt;          return log.isTraceEnabled(); &lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public boolean isWarnEnabled() {&lt;br /&gt;          return log.isWarnEnabled(); &lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public void trace(Object object, Object... params) {&lt;br /&gt;          log.trace(object);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public void trace(Object object, Throwable t, Object... params) {&lt;br /&gt;          log.trace(object,t);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public void debug(Object object, Object... params) {&lt;br /&gt;          log.debug(object);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public void debug(Object object, Throwable t, Object... params) {&lt;br /&gt;          log.debug(object,t);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public void info(Object object, Object... params) {&lt;br /&gt;          log.info(object);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public void info(Object object, Throwable t, Object... params) {&lt;br /&gt;          log.info(object,t);&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public void warn(Object object, Object... params) {&lt;br /&gt;          log.warn(object);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public void warn(Object object, Throwable t, Object... params) {&lt;br /&gt;          log.warn(object,t);&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public void error(Object object, Object... params) {&lt;br /&gt;          log.error(object);&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public void error(Object object, Throwable t, Object... params) {&lt;br /&gt;          log.error(object,t);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public void fatal(Object object, Object... params) {&lt;br /&gt;          log.fatal(object);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      public void fatal(Object object, Throwable t, Object... params) {&lt;br /&gt;          log.fatal(object,t);&lt;br /&gt;      }&lt;br /&gt;  }&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-6064874519197760135?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/6064874519197760135/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=6064874519197760135&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6064874519197760135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6064874519197760135'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/08/pruebas-de-unidad-en-jboss-seam.html' title='Pruebas de unidad en Jboss Seam, implementar org.jboss.seam.log.Log con org.apache.commons.logging.Log'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-8604210977320451657</id><published>2007-08-29T06:49:00.000-07:00</published><updated>2007-08-29T06:50:06.855-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Picasa'/><title type='text'>Obtener el url abosulto de una imagen en Picasa</title><content type='html'>MediaGroup group = photoEntry.getExtension(MediaGroup.class);&lt;br /&gt;   List&lt;mediathumbnail&gt; thumbnails = group.getThumbnails();&lt;br /&gt;   MediaThumbnail thumbnail = thumbnails.get(0);&lt;br /&gt;   String url = thumbnail.getUrl();&lt;br /&gt;&lt;br /&gt;información obtenida de:&lt;a href="http://groups.google.com/group/Google-Picasa-Data-API/browse_thread/thread/aeabbb1fb7584fd9/82d6cd63ffa0a0df?lnk=gst&amp;q=absolute+url&amp;amp;rnum=5#82d6cd63ffa0a0df"&gt;&lt;br /&gt;foro de discusion de picasa&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-8604210977320451657?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/8604210977320451657/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=8604210977320451657&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8604210977320451657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8604210977320451657'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/08/obtener-el-url-abosulto-de-una-imagen.html' title='Obtener el url abosulto de una imagen en Picasa'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-781778864771684861</id><published>2007-08-29T06:48:00.000-07:00</published><updated>2007-08-29T06:50:33.673-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Picasa'/><title type='text'>Foro de discusion de Picasa</title><content type='html'>&lt;a href="http://groups.google.com/group/Google-Picasa-Data-API/"&gt;http://groups.google.com/group/Google-Picasa-Data-API/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-781778864771684861?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/781778864771684861/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=781778864771684861&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/781778864771684861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/781778864771684861'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/08/foro-de-discusion-de-picasa.html' title='Foro de discusion de Picasa'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-3110820097166714082</id><published>2007-08-24T03:25:00.000-07:00</published><updated>2007-08-28T02:09:13.222-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FCKeditor'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Combinar edición  FCKeditor con Blogger</title><content type='html'>Para que cuando seleccionemos un item en fckeditor nos incluya el path completo podemos incluir estas lineas de código dentro de la función existente &lt;span style="font-weight: bold;"&gt;OpenFile( fileUrl ) &lt;/span&gt; en el archivo:&lt;br /&gt;&lt;br /&gt;FCKeditor\editor\filemanager\browser\default\frmresourceslist.html&lt;br /&gt;&lt;br /&gt;function OpenFile( fileUrl )&lt;br /&gt;{&lt;br /&gt;var var1=document.URL.substr(0,document.URL.indexOf('/editor/'));&lt;br /&gt;var lugar=resultado.lastIndexOf('/');&lt;br /&gt;var pathServidor=resultado.substr(0,lugar);&lt;br /&gt;window.top.opener.SetUrl( pathServidor+fileUrl ) ;&lt;br /&gt;window.top.close() ;&lt;br /&gt;window.top.opener.focus() ;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Con esta modificación en el fckeditor, si lo utilizamos para editar entradas de blog, nos mantendrá el url completo al servidor adecuado. Esto funcionará en links a archivos&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-3110820097166714082?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/3110820097166714082/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=3110820097166714082&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3110820097166714082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3110820097166714082'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/08/combinar-edicin-fckeditor-con-blogger.html' title='Combinar edición  FCKeditor con Blogger'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-7645594287623095591</id><published>2007-08-22T12:08:00.001-07:00</published><updated>2007-08-24T03:21:10.692-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Obtener el contenido de una entrada de blogger</title><content type='html'>TextContent tc = (TextContent)entry.getContent();&lt;br /&gt;HtmlTextConstruct ptc = (HtmlTextConstruct)tc.getContent();&lt;br /&gt;System.out.println(ptc.getHtml());&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-7645594287623095591?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/7645594287623095591/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=7645594287623095591&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7645594287623095591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7645594287623095591'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/08/obtener-el-contenido-de-un-entry-de-un.html' title='Obtener el contenido de una entrada de blogger'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-5784648771812598995</id><published>2007-08-09T05:06:00.001-07:00</published><updated>2007-08-09T05:33:52.967-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Mostrar espacio usado en directorios</title><content type='html'>En esta instrucción primero se llama al comando &lt;span style="font-weight: bold;"&gt;du &lt;/span&gt;para mostrar el espacio usado por el direcotorio &lt;span style="font-style: italic;"&gt;/usr/javatools&lt;/span&gt; después se (&lt;span style="font-weight: bold;"&gt;tee&lt;/span&gt;)envia al archivo  &lt;span style="font-style: italic;"&gt;analisis/data&lt;/span&gt; y por ultimo se muestra por pantalla con la utilidad &lt;span style="font-weight: bold;"&gt;more &lt;/span&gt;dicho archivo&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;du  -b 10000   /usr/javatools/ | tee analisis/data | more&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre style="font-weight: bold;"&gt;du -sk *&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Du_%28Unix%29#Examples"&gt;&lt;br /&gt;wikipedia&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-5784648771812598995?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/5784648771812598995/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=5784648771812598995&amp;isPopup=true' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5784648771812598995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5784648771812598995'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/08/mostrar-espacio-usado-en-directorios.html' title='Mostrar espacio usado en directorios'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1416057397188810314</id><published>2007-07-11T05:32:00.000-07:00</published><updated>2007-07-11T05:34:13.132-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>Pasar un parametro en jsf</title><content type='html'>Para no sobrecargar las llamadas al servidor desde el renderizado de la página jsf, podemos guardar valores dentro del componente ui:param de  xmlns:ui="http://java.sun.com/jsf/facelets"&lt;br /&gt;&lt;br /&gt;&amp;lt;ui:param name=&amp;quot;path&amp;quot; value=&amp;quot;../&amp;quot;/&amp;gt;&lt;br /&gt;&lt;br /&gt;y en el resto de la página solamente llamaremos a #{path}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1416057397188810314?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1416057397188810314/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1416057397188810314&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1416057397188810314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1416057397188810314'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/07/pasar-un-parametro-en-jsf.html' title='Pasar un parametro en jsf'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-2201120669145633211</id><published>2007-07-10T04:09:00.000-07:00</published><updated>2007-07-10T04:14:51.150-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='Soluciones'/><title type='text'>Acceder a componente core.manager y core.ConversationEntries en PhaseId.INVOKE_APPLICATION</title><content type='html'>Para acceder a la lista de conversaciones desde nuestro código java y pretendemos hacerlo de la forma&lt;br /&gt;@In&lt;br /&gt;Manager manager&lt;br /&gt;&lt;br /&gt;Nos dará error de illegalArgumentException cuando instancie el componente.&lt;br /&gt;Para solucionarlo podemos acceder directamente con:&lt;br /&gt;        Manager manager = Manager.instance();&lt;br /&gt;        ConversationEntries conversationEntries = ConversationEntries.instance();&lt;br /&gt;&lt;br /&gt;y de esta forma tendremos las conversaciones (ConversationEntry )  y toda su funcionalidad :&lt;br /&gt;        for(ConversationEntry idConversacion:conversationEntries.getConversationEntries())  {&lt;br /&gt;            if(idConversacion.isCurrent())log.error("cURRENT!!");&lt;br /&gt;            log.error("idConversacion_"+idConversacion.getId()+" view"+idConversacion.getViewId());&lt;br /&gt;        }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-2201120669145633211?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/2201120669145633211/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=2201120669145633211&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2201120669145633211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2201120669145633211'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/07/acceder-componente-coremanager-y.html' title='Acceder a componente core.manager y core.ConversationEntries en PhaseId.INVOKE_APPLICATION'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-2130309607506356028</id><published>2007-07-05T03:53:00.000-07:00</published><updated>2007-07-05T03:56:21.330-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='EJB'/><category scheme='http://www.blogger.com/atom/ns#' term='Soluciones'/><title type='text'>Interfaces en ejb3, herencia</title><content type='html'>El componente Seam con estado tiene una interfaz pública por lo cual obtendremos un error si intentamos implementar varias interfaces solo desde la implementación y no desde la interface.&lt;br /&gt;&lt;br /&gt;ej mal hecho--- &gt; ERROR:&lt;br /&gt;public interface CatalogoAction {&lt;br /&gt;...&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class CatalogoActionImpl implements Serializable, CatalogoAction, ListadoResultados{&lt;br /&gt;....&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ej bien hecho:&lt;br /&gt;&lt;br /&gt;public interface CatalogoAction extends ListadoResultados {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class CatalogoActionImpl implements Serializable, CatalogoAction{&lt;br /&gt;....&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-2130309607506356028?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/2130309607506356028/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=2130309607506356028&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2130309607506356028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/2130309607506356028'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/07/interfaces-en-ejb3-herencia.html' title='Interfaces en ejb3, herencia'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-274483579144272555</id><published>2007-07-03T06:05:00.000-07:00</published><updated>2007-07-03T06:07:59.448-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='Soluciones'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>No funciona el estado del componente cuando se intenta cambiar un valor</title><content type='html'>Cuando intento cambiar una propiedad de un componente con estado a través de sus metodos get/setter que se definen en la interface, &lt;span style="font-weight: bold;"&gt;no funciona!&lt;br /&gt;Tenía un problema con la etiqueta h:form, había 1 formulario dentro de otro y eso hacía el error&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-274483579144272555?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/274483579144272555/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=274483579144272555&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/274483579144272555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/274483579144272555'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/07/no-funciona-el-estado-del-componente.html' title='No funciona el estado del componente cuando se intenta cambiar un valor'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-3240129194536271378</id><published>2007-07-03T05:10:00.000-07:00</published><updated>2007-07-03T05:11:06.012-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>SelectOneMenu con entidades y valor nulo</title><content type='html'>&amp;lt;h:selectOneMenu value=&amp;quot;#{search.category}&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;s:convertEntity /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;ui:remove&amp;gt; &amp;lt;f:selectItem itemLabel=&amp;quot;Any&amp;quot; itemValue=&amp;quot;#{anyCategory}&amp;quot; /&amp;gt;&amp;lt;/ui:remove&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;s:selectItems value=&amp;quot;#{allCategories.resultList}&amp;quot; var=&amp;quot;category&amp;quot; &lt;br /&gt;&lt;br /&gt;label=&amp;quot;#{category.name}&amp;quot;&lt;br /&gt;&lt;br /&gt;noSelectionLabel=&amp;quot;ANY&amp;quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/h:selectOneMenu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-3240129194536271378?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/3240129194536271378/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=3240129194536271378&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3240129194536271378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3240129194536271378'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/07/selectonemenu-con-entidades-y-valor.html' title='SelectOneMenu con entidades y valor nulo'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-690760857619351408</id><published>2007-07-03T02:33:00.000-07:00</published><updated>2007-07-03T02:40:54.401-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='Eventos'/><category scheme='http://www.blogger.com/atom/ns#' term='Soluciones'/><category scheme='http://www.blogger.com/atom/ns#' term='AOP'/><title type='text'>Recargar factoria de elementos al acabar una conversación</title><content type='html'>Para recargar una factoría de objetos que tendremos cargados en session para optimizar el rendimiento de la base de datos, podemos utilizar los eventos, los cuales al finalizar una tarea/conversación se pueden encargar de forma transparente (programación orientada a aspectos) de acceder a variables de otros componentes para su inicialización.&lt;br /&gt;Ejemplo:&lt;br /&gt;al finalizar un pedido de compra se necesita que el catalogo de productos muestre el stock actualizado.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;public class CheckOutBean implements CheckOut, Serializable{&lt;br /&gt;...&lt;br /&gt;   @End&lt;br /&gt;   @RaiseEvent("limpiarCatalogo")&lt;br /&gt;   public void enviarPedido() {&lt;br /&gt;      persist.order()&lt;br /&gt;     &lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class CatalogoBean implements Serializable, Catalogo {&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;@Observer("limpiarCatalogo")&lt;br /&gt;   public void limpiarPiezas(){&lt;br /&gt;       log.error("RESET CATALOGO ");&lt;br /&gt;       piezasList=null;&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;**** &lt;span style="font-weight: bold;"&gt;Esto puede parecer obvio, &lt;/span&gt;pero si lo que hacemos es recargar la colección en vex de limpiarla no funcionará, ya que la transacción depende de las phases de jsf, es decir que no se producirá la actualización hasta que no se salga de la PhaseId.INVOKE_APPLICATION.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-690760857619351408?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/690760857619351408/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=690760857619351408&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/690760857619351408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/690760857619351408'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/07/recargar-factoria-de-elementos-al.html' title='Recargar factoria de elementos al acabar una conversación'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1918362124100476999</id><published>2007-07-03T02:20:00.000-07:00</published><updated>2007-10-11T02:27:01.018-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><title type='text'>Eventos en Seam</title><content type='html'>Seam contempla varios modelos de eventos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;JSF eventos&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;h:commandButton value="enviar" &lt;span style="font-weight: bold;"&gt;action="#{helloWorld.sayHello}"/&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;jBPM transition events (.jpdl), se especifican en la etiqueta event en la cual hay que definir el tipo de evento (&lt;span style="font-size:85%;"&gt;node-enter, node-leave, process-start, process-end, task-create, task-assign, task-start, task-end, before-signal, after-signal&lt;/span&gt;). Hay que distinguir entre bussiness process (varios usuarios implicados) y pageflow (un usuario)&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;event type=""&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Seam page actions (pages.xml), se ejecutan antes del renderizado de una página&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;pages&amp;gt;&lt;br /&gt;&amp;lt;page view-id="hello.jsp" &lt;span style="font-weight: bold;"&gt;action="#{helloWorld.sayHello}"&lt;/span&gt;/&amp;gt;&lt;br /&gt;&amp;lt;/pages&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Seam component-driven events&lt;/li&gt;&lt;ul&gt;&lt;li&gt;se puede definir en el archivo components.xml o en el propio código java a través de anotaciones o referencias a componentes propios de Seam es decir Events.instance&lt;/li&gt;&lt;ul&gt;&lt;li&gt;anotacion para observar un evento @Observer("nombreEvento")&lt;/li&gt;&lt;li&gt;anotación para lanzar un evento @RaiseEvent("nombreEvento")&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Seam contextual events&lt;/li&gt;&lt;ul&gt;&lt;li&gt;componentes Seam siempre instalados&lt;/li&gt;&lt;ul&gt;&lt;li&gt;preSetVariable, postSetVariable, preRemoveVariable ...&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;En @RaiseEvent(value="nombreEvento")&lt;br /&gt;se produce cuando el metodo devuelve un not-null y sin excepciones!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1918362124100476999?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1918362124100476999/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1918362124100476999&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1918362124100476999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1918362124100476999'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/07/eventos-en-seam.html' title='Eventos en Seam'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1208322347266266232</id><published>2007-07-02T13:46:00.000-07:00</published><updated>2007-07-04T03:57:11.625-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='pageflow'/><title type='text'>¿qué es un pageflow?</title><content type='html'>Pageflow podríamos definirlo como definición de proceso o flujo de negocio. Para su representación se utiliza jPDL que tiene sintaxis XML y puede editarse gráficamente con un plugin de eclipse. En dicha representación se concretan los diferentes estados, decisiones, tareas, páginas web, etc con las cuales interactua el usuario.&lt;br /&gt;&lt;br /&gt;Existen dos formas de definir un pageflow en Seam:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Sin estado - faces-config.xml /pages.xml&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Con estado - jPDL&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;continuará ....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1208322347266266232?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1208322347266266232/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1208322347266266232&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1208322347266266232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1208322347266266232'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/07/qu-es-un-pageflow.html' title='¿qué es un pageflow?'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-263219093471566279</id><published>2007-06-29T03:44:00.000-07:00</published><updated>2007-06-29T03:45:39.041-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><category scheme='http://www.blogger.com/atom/ns#' term='Errores'/><title type='text'>DataModelSelection en Conversation context problem</title><content type='html'>Después de mucho probar me he dado cuenta que el datamodelselection funciona en un contexto de session&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-263219093471566279?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/263219093471566279/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=263219093471566279&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/263219093471566279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/263219093471566279'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/datamodelselection-en-conversation.html' title='DataModelSelection en Conversation context problem'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1281638439555888770</id><published>2007-06-28T07:29:00.000-07:00</published><updated>2007-06-28T09:03:01.816-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='AOP'/><title type='text'>Interceptar toda la aplicacion en Seam</title><content type='html'>Podemos utilzar la filosofía de Seam de interceptar todo, para cronometrar nuestra aplicación y comprobar en que métodos se producen retardos.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li style="font-weight: bold;"&gt;Creamos una clase que extienda de org.jboss.seam.ejb.SeamInterceptor es decir la clase que utiliza Seam para interceptar los componentes de la aplicacion:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;public class MiaoInterceptor extends SeamInterceptor {&lt;br /&gt;&lt;br /&gt;  @AroundInvoke&lt;br /&gt;      public Object aroundInvoke(InvocationContext invocation) throws Exception&lt;br /&gt;  {&lt;br /&gt;&lt;br /&gt;      if(invocation.getTarget().getClass().getPackage().toString().contains("es.miao")){&lt;br /&gt;      long l = System.currentTimeMillis();&lt;br /&gt;&lt;br /&gt;          String invocacion=invocation.getTarget().getClass().getSimpleName()+"."+invocation.getMethod().getName()+"()";&lt;br /&gt;          System.out.println("INICIANDO: "+invocacion);&lt;br /&gt;&lt;br /&gt;      Object o = invocation.proceed();&lt;br /&gt;      long ll = System.currentTimeMillis();&lt;br /&gt;&lt;br /&gt;      System.out.println("FINALIZANDO: "+invocacion+" Tiempo total: "+(ll-l)+" milisegundos");&lt;br /&gt;&lt;br /&gt;      return o;&lt;br /&gt;      }&lt;br /&gt;      return invocation.proceed();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li style="font-weight: bold;"&gt;&lt;span style="font-size:100%;"&gt;Cambiar en el ejb-jar.xml el interceptor de seam por el nuestro&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"&lt;br /&gt;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"&lt;br /&gt;version="3.0"&amp;gt;&lt;br /&gt;&amp;lt;interceptors&amp;gt;&lt;br /&gt;&amp;lt;interceptor&amp;gt;&lt;br /&gt;&amp;lt;interceptor-class&amp;gt;org.jboss.seam.ejb.SeamInterceptor&amp;lt;/interceptor-class&amp;gt;&lt;br /&gt;&amp;lt;/interceptor&amp;gt;&lt;br /&gt;&amp;lt;interceptor&amp;gt;&lt;br /&gt;&amp;lt;interceptor-class&amp;gt;es.miao.MiaoInterceptor&amp;lt;/interceptor-class&amp;gt;&lt;br /&gt;&amp;lt;/interceptor&amp;gt;&lt;br /&gt;&amp;lt;/interceptors&amp;gt;&lt;br /&gt;&amp;lt;assembly-descriptor&amp;gt;&lt;br /&gt;&amp;lt;interceptor-binding&amp;gt;&lt;br /&gt;&amp;lt;ejb-name&amp;gt;*&amp;lt;/ejb-name&amp;gt;&lt;br /&gt;&amp;lt;interceptor-class&amp;gt;org.jboss.seam.ejb.SeamInterceptor&amp;lt;/interceptor-class&amp;gt;&lt;br /&gt;&amp;lt;/interceptor-binding&amp;gt;&lt;br /&gt;&amp;lt;interceptor-binding&amp;gt;&lt;br /&gt;&amp;lt;ejb-name&amp;gt;*&amp;lt;/ejb-name&amp;gt;&lt;br /&gt;&amp;lt;interceptor-class&amp;gt;es.miao.MiaoInterceptor&amp;lt;/interceptor-class&amp;gt;&lt;br /&gt;&amp;lt;/interceptor-binding&amp;gt;&lt;br /&gt;&amp;lt;/assembly-descriptor&amp;gt;&lt;br /&gt;&amp;lt;/ejb-jar&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1281638439555888770?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1281638439555888770/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1281638439555888770&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1281638439555888770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1281638439555888770'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/interceptar-toda-la-aplicacion-en-seam.html' title='Interceptar toda la aplicacion en Seam'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-5337031371588185045</id><published>2007-06-28T06:55:00.000-07:00</published><updated>2007-09-03T04:10:45.561-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='TestNG'/><category scheme='http://www.blogger.com/atom/ns#' term='Intellij IDEA'/><title type='text'>InstantiationException: Configurar intelli jidea para correr pruebas de seam</title><content type='html'>Un problema es que el seam necesita que en el directorio donde se copian todos los recursos empleados exista el security.drl, y esto se hace settings&gt;compiler&gt;resource patterns e incluir ?*.drl;&lt;br /&gt;&lt;br /&gt;además hay que copiar persistence-text.xml a persistence.xml, esto lo hace el archivo ant del seam, pero hay que indicarselo al intellijidea. se puede hacer configurando la prueba para que corra una tarea ant antes de arrancar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-5337031371588185045?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/5337031371588185045/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=5337031371588185045&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5337031371588185045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5337031371588185045'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/configurar-intelli-jidea-para-correr.html' title='InstantiationException: Configurar intelli jidea para correr pruebas de seam'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1619801126783844413</id><published>2007-06-27T04:05:00.000-07:00</published><updated>2007-06-27T04:13:10.925-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacienda'/><category scheme='http://www.blogger.com/atom/ns#' term='seguridad social'/><title type='text'>Alta de autonomo en epigrafe de programador en sevilla</title><content type='html'>Hacienda al lado de la casa de la &lt;a href="http://maps.google.es/maps?f=q&amp;hl=es&amp;amp;geocode=&amp;q=Calle+Castelar,+41001,+Sevilla,+Sevilla,+Andaluc%C3%ADa,+Espa%C3%B1a&amp;amp;sll=37.387072,-5.99375&amp;sspn=0.009565,0.0156&amp;amp;ie=UTF8&amp;ll=37.383705,-5.994233&amp;amp;spn=0.004783,0.0078&amp;z=17&amp;amp;om=1"&gt;moneda&lt;/a&gt;&lt;br /&gt;La seguridad social en calle castelar &lt;a href="http://maps.google.es/maps?f=q&amp;hl=es&amp;amp;geocode=&amp;q=Calle+Castelar,+41001,+Sevilla,+Sevilla,+Andaluc%C3%ADa,+Espa%C3%B1a&amp;amp;sll=37.387072,-5.99375&amp;sspn=0.009565,0.0156&amp;amp;ie=UTF8&amp;ll=37.386953,-5.996947&amp;amp;spn=0.009565,0.0156&amp;z=16&amp;amp;iwloc=addr&amp;amp;om=1"&gt;mapa&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;darse de alta en el IAE (Impuesto de actividades económicas)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Mostrador 16 pedir modelo 036&lt;/li&gt;&lt;li&gt;pedir número para declaración censal&lt;/li&gt;&lt;li&gt;entregar modelo cumplimentado&lt;/li&gt;&lt;ul&gt;&lt;li&gt;epigrafe 762 Programador&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;ir a la seguridad social&lt;/li&gt;&lt;ul&gt;&lt;li&gt;fotocopiar el 036 sellado&lt;/li&gt;&lt;li&gt;llevar el numero de cuenta para domiciliación&lt;/li&gt;&lt;li&gt;llevar el número de la seguridad social&lt;/li&gt;&lt;li&gt;el epigrafe en seguridad social es el 72210:Edición de programas&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1619801126783844413?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1619801126783844413/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1619801126783844413&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1619801126783844413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1619801126783844413'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/alta-de-autonomo-en-epigrafe-de.html' title='Alta de autonomo en epigrafe de programador en sevilla'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-5291651528089138774</id><published>2007-06-26T12:51:00.000-07:00</published><updated>2007-06-26T13:14:13.667-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='jbpm'/><category scheme='http://www.blogger.com/atom/ns#' term='components.xml'/><category scheme='http://www.blogger.com/atom/ns#' term='pages.xml'/><title type='text'>jbpm en seam</title><content type='html'>primer ejemplo a seguir el numberguess example de seam aunque también está el dvd-store&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;hay que definir el componente de la definición del proceso en el components.xml:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;component class="org.jboss.seam.core.Jbpm"&amp;gt;&lt;br /&gt;&amp;lt;property name="pageflowDefinitions"&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;pageflow.jpdl.xml&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;cheat.jpdl.xml&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;/component&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;y posteriormente la definición del proceso en este caso de cheat.jpdl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;pageflow-definition xmlns="http://jboss.com/products/seam/pageflow"&lt;br /&gt;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;xsi:schemaLocation=&lt;br /&gt;"http://jboss.com/products/seam/pageflow http://jboss.com/products/seam/pageflow-1.2.xsd"&lt;br /&gt;name="cheat"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;start-page name="confirm" view-id="/confirm.jspx"&amp;gt;&lt;br /&gt;&amp;lt;transition name="yes" to="cheat"&amp;gt;&lt;br /&gt;&amp;lt;action expression="#{numberGuess.cheated}"/&amp;gt;&lt;br /&gt;&amp;lt;/transition&amp;gt;&lt;br /&gt;&amp;lt;transition name="no" to="end"/&amp;gt;&lt;br /&gt;&amp;lt;/start-page&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;page name="cheat" view-id="/cheat.jspx"&amp;gt;&lt;br /&gt;&amp;lt;redirect/&amp;gt;&lt;br /&gt;&amp;lt;transition to="end"/&amp;gt;&lt;br /&gt;&amp;lt;/page&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;page name="end" view-id="/numberGuess.jspx"&amp;gt;&lt;br /&gt;&amp;lt;redirect/&amp;gt;&lt;br /&gt;&amp;lt;end-conversation/&amp;gt;&lt;br /&gt;&amp;lt;/page&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/pageflow-definition&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;y en el pages.xml arrancamos el pageflow&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;pages&amp;gt;&lt;br /&gt;&amp;lt;page view-id="/numberGuess.jspx"&amp;gt;&lt;br /&gt;&amp;lt;begin-conversation join="true" pageflow="numberGuess"/&amp;gt;&lt;br /&gt;&amp;lt;/page&amp;gt;&lt;br /&gt;&amp;lt;page view-id="/confirm.jspx"&amp;gt;&lt;br /&gt;&amp;lt;begin-conversation nested="true" pageflow="cheat"/&amp;gt;&lt;br /&gt;&amp;lt;/page&amp;gt;&lt;br /&gt;&amp;lt;/pages&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;aunque también se puede arrancar desde  el componente&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;@Create&lt;br /&gt;@Begin(pageflow="numberGuess")&lt;br /&gt;public void begin(){&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-5291651528089138774?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/5291651528089138774/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=5291651528089138774&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5291651528089138774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5291651528089138774'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/jbpm-en-seam.html' title='jbpm en seam'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-4922847403338333411</id><published>2007-06-26T12:18:00.000-07:00</published><updated>2007-06-26T12:50:04.204-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='pages.xml'/><category scheme='http://www.blogger.com/atom/ns#' term='faces-config.xml'/><title type='text'>pages.xml navegacion</title><content type='html'>Entre las razones de elegir el pages.xml para definir la navegación se encuentran:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;la posibilidad de especificar valores del request en la redirección&lt;/li&gt;&lt;li&gt;comenzar o acabar una conversación desde la evaluación de una regla&lt;/li&gt;&lt;li&gt;avaluar cualquier expressión de tipo EL&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Para ver el empleo del pages.xml se puede ojear lo que produce el seam-jems generate-entities&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Utilizar reglas de navegacion con pages.xml&lt;br /&gt;&lt;br /&gt;lo que en faces-config.xml se escribiría así:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;navigation-rule&amp;gt;&lt;br /&gt;&amp;lt;from-view-id&amp;gt;/editDocument.xhtml&amp;lt;/from-view-id&amp;gt;&lt;br /&gt;&amp;lt;navigation-case&amp;gt;&lt;br /&gt;&amp;lt;from-action&amp;gt;#{documentEditor.update}&amp;lt;/from-action&amp;gt;&lt;br /&gt;&amp;lt;from-outcome&amp;gt;success&amp;lt;/from-outcome&amp;gt;&lt;br /&gt;&amp;lt;to-view-id&amp;gt;/viewDocument.xhtml&amp;lt;/to-view-id&amp;gt;&lt;br /&gt;&amp;lt;redirect/&amp;gt;&lt;br /&gt;&amp;lt;/navigation-case&amp;gt;&lt;br /&gt;&amp;lt;/navigation-rule&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;lo que en pages.xml quedaría así:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;pageview-id="/editDocument.xhtml"&amp;gt;&lt;br /&gt;&amp;lt;navigationfrom-action="#{documentEditor.update}"&lt;br /&gt;evaluate="#{documentEditor.errors.size}"&amp;gt;&lt;br /&gt;&amp;lt;ruleif-outcome="0"&amp;gt;&lt;br /&gt;&amp;lt;redirectview-id="/viewDocument.xhtml"/&amp;gt;&lt;br /&gt;&amp;lt;/rule&amp;gt;&lt;br /&gt;&amp;lt;/navigation&amp;gt;&lt;br /&gt;&amp;lt;/page&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;o incluso&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;pageview-id="/editDocument.xhtml"&amp;gt;&lt;br /&gt;&amp;lt;navigationfrom-action="#{documentEditor.update}"&amp;gt;&lt;br /&gt;&amp;lt;ruleif="#{documentEditor.errors.empty}"&amp;gt;&lt;br /&gt;&amp;lt;redirectview-id="/viewDocument.xhtml"/&amp;gt;&lt;br /&gt;&amp;lt;/rule&amp;gt;&lt;br /&gt;&amp;lt;/navigation&amp;gt;&lt;br /&gt;&amp;lt;/page&amp;gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-4922847403338333411?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/4922847403338333411/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=4922847403338333411&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4922847403338333411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4922847403338333411'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/pagesxml-navegacion.html' title='pages.xml navegacion'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1518198562091616292</id><published>2007-06-26T11:15:00.000-07:00</published><updated>2007-06-26T12:35:29.095-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='pages.xml'/><title type='text'>Gestión de errores en Seam</title><content type='html'>&lt;span style="font-style: italic;"&gt;Con la etiqueta "restrict" me parece que se produce una redirección una vez que se salva la condición?&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Ejemplo de Seam util para investigar: blog, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;en este no se recoge la excepción en el pages.xml, unicamente la clase de excepción EntryNotFoundException tiene las etiquetas:&lt;br /&gt;@ApplicationException(rollback=true)&lt;br /&gt;@HttpError(errorCode=HttpServletResponse.SC_NOT_FOUND)&lt;br /&gt;y entonces y con el web.xml:&lt;br /&gt;&lt;br /&gt;&amp;lt;error-page&amp;gt;&lt;br /&gt;&amp;lt;error-code&amp;gt;404&amp;lt;/error-code&amp;gt;&lt;br /&gt;&amp;lt;location&amp;gt;/seam/404.xhtml&amp;lt;/location&amp;gt;&lt;br /&gt;&amp;lt;/error-page&amp;gt;&lt;br /&gt;&lt;br /&gt;directamente busca el 404.xhtml&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Las excepciones heredan de RuntimeException&lt;/span&gt; y se producen en la invocación de un metodo jsf, es decir metodo público que no devuelve nada.&lt;br /&gt;ejemplo metodo jsf que lanza excepción:&lt;br /&gt;public void buscar(){&lt;br /&gt;....&lt;br /&gt;thrown new RuntimeException("algo ha fallado");&lt;br /&gt;....&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ademas se pueden producir a través del pages.xml con la etiqueta "restrict" o con "action" dentro de "page"&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;page view-id="/gestion/*"&amp;gt;&lt;br /&gt;&amp;lt;restrict&amp;gt;#{authenticator.admin}&amp;lt;/restrict&amp;gt;&lt;br /&gt;&amp;lt;/page&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;exception class="es.miao.MiaoExcepcion"&amp;gt;&lt;br /&gt;&amp;lt;redirect view-id="/error.xhtml"&amp;gt;&lt;br /&gt;&amp;lt;message&amp;gt;ha funcionado la runtime exception&amp;lt;/message&amp;gt;&lt;br /&gt;&amp;lt;/redirect&amp;gt;&lt;br /&gt;&amp;lt;/exception&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Se supone que al entrar en cualquier pagina que se corresponda con el patrón "/gestion/*" es decir todas aquellas que se encuentren en la carpeta gestion, serán restringidas a que el componente authenticator responda afirmativamente al metodo isAdmin().&lt;br /&gt;De lo contrario la etiqueta restrict se encarga de llevar a la página de error correspondiente.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;exception class="org.jboss.seam.security.NotLoggedInException"&amp;gt;&lt;br /&gt;&amp;lt;redirect view-id="/login.xhtml"&amp;gt;&lt;br /&gt;&amp;lt;message&amp;gt;#{messages.masInfo}&amp;lt;/message&amp;gt;&lt;br /&gt;&amp;lt;/redirect&amp;gt;&lt;br /&gt;&amp;lt;/exception&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Con "restrict" es el componente Identity el que se encarga de evaluar la expressión y lanzar la correspondiente excepción, también podríamos obtener una excepción de la etiqueta "action"&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;action execute="#{catalogoAction.disminuye}"  /&amp;gt;&lt;br /&gt;&lt;br /&gt;Se supone que las acciones jsf no devuelven nada como resultado return void. Sin embargo la etiqueta restrict espera un boolean [boolean isAdmin(), ó , boolean isChecked()]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1518198562091616292?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1518198562091616292/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1518198562091616292&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1518198562091616292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1518198562091616292'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/gestin-de-errores-en-seam.html' title='Gestión de errores en Seam'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-8032968302005275758</id><published>2007-06-26T10:15:00.000-07:00</published><updated>2007-06-26T10:27:38.296-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><title type='text'>Seam componentes (traduccion de seam tutorial)</title><content type='html'>Existen 4 tipos de componentes:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;EJB 3.0 stateless session beans&lt;/li&gt;&lt;li&gt;EJB 3.0 stateful session beans&lt;/li&gt;&lt;li&gt;EJB 3.0 entity beans&lt;/li&gt;&lt;li&gt;JavaBeans&lt;/li&gt;&lt;li&gt;EJB 3.0 message-driven beans&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Los EJB 3.0 stateless session beans:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Beans sin estado, se suelen usar como jsf listeners.&lt;br /&gt;Contexto: stateless context&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Los EJB 3.0 stateful session beans:&lt;br /&gt;&lt;/span&gt;Son componentes con estado&lt;br /&gt;Por defecto su contexto es de conversación, unicamente no puede estar en el contexto de página o stateless context.&lt;br /&gt;Cuando están es contexto de sessión son siempre serializados por Seam&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Los EJB 3.0 Entity Beans:&lt;br /&gt;&lt;/span&gt;Son los beans que representan a las entidades persistentes.&lt;br /&gt;Debido a que tienen una identidad en el contexto de seam y además una entidad en la persistencia, se suelen  instanciar en el propio código java en lugar de instanciarlos Seam.&lt;br /&gt;Estos beans no soportan la biyección.&lt;br /&gt;Por defecto son de Contexto de conversación. No pueden ser stateless (Sin estado).&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-8032968302005275758?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/8032968302005275758/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=8032968302005275758&amp;isPopup=true' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8032968302005275758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8032968302005275758'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/seam-componentes-traduccion-de-seam.html' title='Seam componentes (traduccion de seam tutorial)'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1832486542034143462</id><published>2007-06-26T10:00:00.000-07:00</published><updated>2007-06-26T10:01:16.573-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='AOP'/><title type='text'>(Interceptores)Factorias de session que se recargan según eventos:</title><content type='html'>&lt;span style="font-weight: bold;"&gt;De esta forma no recargamos las llamadas a la base de datos:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;  &lt;br /&gt;@Stateful&lt;br /&gt;@Scope(SESSION)&lt;br /&gt;@Name("bookingList")&lt;br /&gt;@Restrict("#{identity.loggedIn}")&lt;br /&gt;@TransactionAttribute(REQUIRES_NEW)&lt;br /&gt;public class BookingListAction implements BookingList, Serializable&lt;br /&gt;{&lt;br /&gt;.......&lt;br /&gt;&lt;br /&gt;@Factory&lt;br /&gt;   @Observer("bookingConfirmed")&lt;br /&gt;   public void getBookings()&lt;br /&gt;   {&lt;br /&gt;      bookings = em.createQuery("select b from Booking b where b.user.username = :username order by b.checkinDate")&lt;br /&gt;            .setParameter("username", user.getUsername())&lt;br /&gt;            .getResultList();&lt;br /&gt;   }&lt;br /&gt;  ........&lt;br /&gt;}&lt;br /&gt;@Stateful&lt;br /&gt;@Name("hotelBooking")&lt;br /&gt;@Restrict("#{identity.loggedIn}")&lt;br /&gt;public class HotelBookingAction implements HotelBooking&lt;br /&gt;{&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt; @End&lt;br /&gt;   public void confirm()&lt;br /&gt;   {&lt;br /&gt;      em.persist(booking);&lt;br /&gt;      facesMessages.add("#{messages.gracias}, #{user.name}, your confimation number for #{hotel.name} is #{booking.id}");&lt;br /&gt;      log.info("New booking: #{booking.id} for #{user.username}");&lt;br /&gt;      events.raiseTransactionSuccessEvent("bookingConfirmed");&lt;br /&gt;   }&lt;br /&gt;...&lt;br /&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1832486542034143462?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1832486542034143462/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1832486542034143462&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1832486542034143462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1832486542034143462'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/interceptoresfactorias-de-session-que.html' title='(Interceptores)Factorias de session que se recargan según eventos:'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-1633739719359789050</id><published>2007-06-26T02:50:00.000-07:00</published><updated>2007-06-26T02:55:18.550-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='Soluciones'/><title type='text'>Pages.xml param converter Entity Id as Page Parameters</title><content type='html'>&lt;span style="font-weight: normal;font-size:130%;" &gt;Al utilizar el seam framework:entity-home&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;framework:entity-home name="empresaCasa" entity-class="es.miao.Empresa" &amp;gt;&lt;br /&gt;&amp;lt;framework:id &amp;gt;#{param.empresaId}&amp;lt;/framework:id&amp;gt;&lt;br /&gt;&amp;lt;/framework:entity-home&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Me daba un &lt;span style="font-weight: bold;"&gt;error de hibernate de conversión&lt;/span&gt;, se esperaba un long (el id de empresa) y se recibe un string. En la documentación de Seam viene que se pueden añadir conversores a los parametros recibidos, en este caso había que aclarar en el pages.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;page view-id="/gestion/empresa.xhtml"&amp;gt;&lt;br /&gt;&amp;lt;param name="empresaId"   value="#{empresaCasa.id}" &lt;span style="font-weight: bold;"&gt;converterId="javax.faces.Long"&lt;/span&gt; /&amp;gt;&lt;br /&gt;&amp;lt;/page&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-1633739719359789050?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/1633739719359789050/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=1633739719359789050&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1633739719359789050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/1633739719359789050'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/pagesxml-param-converter-entity-id-as.html' title='Pages.xml param converter Entity Id as Page Parameters'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-3654847597883660657</id><published>2007-06-25T11:27:00.000-07:00</published><updated>2007-06-25T11:28:23.924-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><title type='text'>Hibernate anotar una enumeracion</title><content type='html'>public enum Status {OPEN,CANCELLED,PROCESSING,SHIPPED}&lt;br /&gt;&lt;br /&gt;    @Column(name="STATUS")&lt;br /&gt;    public Status getStatus() {&lt;br /&gt;        return status;&lt;br /&gt;    }&lt;br /&gt;    public void setStatus(Status status) {&lt;br /&gt;        this.status = status;&lt;br /&gt;    }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-3654847597883660657?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/3654847597883660657/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=3654847597883660657&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3654847597883660657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3654847597883660657'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/hibernate-anotar-una-enumeracion.html' title='Hibernate anotar una enumeracion'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-6942725497368160098</id><published>2007-06-22T08:19:00.000-07:00</published><updated>2007-06-22T09:01:24.071-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><title type='text'>Conversaciones en Jboss Seam</title><content type='html'>Se puede entender por una conversación en Seam algo muy parecido de lo que hacemos cuando conversamos entre personas.&lt;br /&gt;Existe un lugar (AplicationContext),  un tiempo (SessionContext) y después una serie de objetos implicados en la conversación. Entre los objetos implicados en la conversación se encuentra el usuario, que participa a través de eventos, de tipo:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;JSF&lt;br /&gt;&lt;/li&gt;&lt;li&gt;jBMP&lt;/li&gt;&lt;li&gt;Seam page actions&lt;/li&gt;&lt;li&gt;Seam component-drive events&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Los eventos implican manejar las excepciones que se derivan de estos , novedad en el seam 1.6&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El objeto ConversationEntry tiene una serie de propiedades que usaremos al cambiar de conversación. Entre elllas el viewId, es decir en nuestro caso,  la página jsf. Igualmente tiene el metodo select(), que cambia la conversación seleccionada a la conversación actual.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Las clases implicadas son:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;org.jboss.seam.core.ConversationEntry&lt;br /&gt;org.jboss.seam.core.ConversationList&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; org.jboss.seam.core.Manager&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-6942725497368160098?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/6942725497368160098/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=6942725497368160098&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6942725497368160098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6942725497368160098'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/conversaciones-en-jboss-seam.html' title='Conversaciones en Jboss Seam'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-8529061178595940065</id><published>2007-06-21T02:17:00.000-07:00</published><updated>2007-06-27T09:39:02.870-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><title type='text'>interesante en seam</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Limitaciones/validaciones en inputs jsf y seam:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;    @NotNull(message="Credit card number is required")&lt;br /&gt;@Length(min=16, max=16, message="Credit card number must 16 digits long")&lt;br /&gt;@Pattern(regex="^\\d*$", message="Credit card number must be numeric")&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Añadir un mensaje a un control jsf a través del componente facesMessages de Seam&lt;/span&gt;&lt;br /&gt;     facesMessages.addToControl("verify", "Re-enter new password");&lt;br /&gt;         facesMessages.addToControl("username", "Username #{user.username} #{messages.traducciones}");&lt;br /&gt;* notar que podemos hacer referencia a un componente a traves del lenguaje EL&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Añadir un contador con interceptores&lt;br /&gt;&lt;/span&gt;&lt;span&gt;esto se hace a través del pages.xml&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&amp;lt;page view-id="*"&amp;gt;&lt;br /&gt;&amp;lt;action execute="#{blog.hitCount.hit}"/&amp;gt;&lt;br /&gt;&amp;lt;/page&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Obtener la pagina actual desde cualquier componente&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;javax.faces.context.FacesContext.getCurrentInstance().getViewRoot().getViewId()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Obtener info del contexto para upload y directorios de imgs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;facesContext.externalContext.requestContextPath&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;i18n, se puede acceder a través de la clase java, y el mismo properties puede tener referencias EL&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;facesMessages.addFromResourceBundle("Hello");&lt;br /&gt;Hello=Hello,#{user.firstName}#{user.lastName}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Inyectar de forma dinámica objetos en cada contexto (extraído de ejemplo de DVD Store)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;   @In Context sessionContext;&lt;br /&gt;   private static final String USER_VAR = "currentUser";&lt;br /&gt;    function void xxx(){&lt;br /&gt;    Object found=dao.get(xx)&lt;br /&gt;      sessionContext.set(USER_VAR, found);&lt;br /&gt;}&lt;br /&gt;ya está inyectado el objeto found en el contexto de session.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-8529061178595940065?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/8529061178595940065/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=8529061178595940065&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8529061178595940065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/8529061178595940065'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/interesante-en-seam.html' title='interesante en seam'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-490280315604865394</id><published>2007-06-20T11:36:00.000-07:00</published><updated>2007-06-20T11:39:20.962-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='jpa'/><title type='text'>Obtener el hibernate Session desde EntityManager</title><content type='html'>javax.persistence.EntityManager ---------&gt; org.hibernate.Session&lt;br /&gt;&lt;br /&gt;Para utizar la API de hibernate desde el EntityManager inyectado desde Seam&lt;br /&gt;&lt;br /&gt;   @PersistenceContext&lt;br /&gt;   private EntityManager em;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Session session = ((HibernateEntityManager) em.getDelegate()).getSession();&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-490280315604865394?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/490280315604865394/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=490280315604865394&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/490280315604865394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/490280315604865394'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/obtener-el-hibernate-session-desde.html' title='Obtener el hibernate Session desde EntityManager'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-3407422913266327</id><published>2007-06-18T10:47:00.000-07:00</published><updated>2007-06-27T09:11:25.214-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='EL'/><title type='text'>UnifiedExpressionLanguage operador &amp;&amp;</title><content type='html'>El operador "&amp;&amp;amp;" se cambia a "and"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/javaee/5/docs/tutorial/doc/JSPIntro7.html"&gt;http://java.sun.com/javaee/5/docs/tutorial/doc/JSPIntro7.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;not empty&lt;br /&gt;empty&lt;br /&gt;&lt;br /&gt;la expresión quedaría de la siguiente forma: #{empty cart.cart}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-3407422913266327?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/3407422913266327/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=3407422913266327&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3407422913266327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3407422913266327'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/unifiedexpressionlanguage.html' title='UnifiedExpressionLanguage operador &amp;&amp;'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-7986686596982524985</id><published>2007-06-18T04:36:00.000-07:00</published><updated>2007-06-18T10:50:02.171-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Convertir byte[] a archivo</title><content type='html'>&lt;span style="font-size:78%;"&gt;                File file = new File(name);&lt;br /&gt;                file.createNewFile();&lt;br /&gt;                FileInputStream fileInputStream = new FileInputStream(name);&lt;br /&gt;                ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fileData);&lt;br /&gt;                OutputStream outputStream = new FileOutputStream(&lt;br /&gt;                        name);&lt;br /&gt;                int data;&lt;br /&gt;                while ((data = byteArrayInputStream.read()) != -1) {&lt;br /&gt;                    outputStream.write(data);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                fileInputStream.close();&lt;br /&gt;                outputStream.close();&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-7986686596982524985?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/7986686596982524985/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=7986686596982524985&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7986686596982524985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/7986686596982524985'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/convertir-byte-archivo.html' title='Convertir byte[] a archivo'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-6892965315405351799</id><published>2007-06-14T03:06:00.000-07:00</published><updated>2007-06-14T03:08:16.498-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seam 1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>s:link uso de esta etiqueta de seam</title><content type='html'>&amp;lt;s:link value="#{msg.title}" action="#{messageManager.select}"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@Stateful&lt;br /&gt;@Scope(SESSION)&lt;br /&gt;@Name("messageManager")&lt;br /&gt;public class MessageManagerBean implements Serializable, MessageManager&lt;br /&gt;{&lt;br /&gt;  public void select()&lt;br /&gt;  {&lt;br /&gt;     if (message!=null) message.setRead(true);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-6892965315405351799?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/6892965315405351799/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=6892965315405351799&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6892965315405351799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/6892965315405351799'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/slink-uso-de-esta-etiqueta-de-seam.html' title='s:link uso de esta etiqueta de seam'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-4970998855204303694</id><published>2007-06-13T06:03:00.000-07:00</published><updated>2007-06-13T06:04:05.057-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jpa'/><title type='text'>Ejemplo heritance jpa</title><content type='html'>&lt;span style="font-size:78%;"&gt;package es.miao;&lt;br /&gt;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;import javax.persistence.*;&lt;br /&gt;&lt;br /&gt;import org.hibernate.validator.Length;&lt;br /&gt;import org.hibernate.validator.NotNull;&lt;br /&gt;&lt;br /&gt;@Entity&lt;br /&gt;@Table(name = "color_primaria")&lt;br /&gt;@Inheritance(strategy=InheritanceType.SINGLE_TABLE)&lt;br /&gt;@DiscriminatorColumn(name="tipo", discriminatorType=DiscriminatorType.STRING, length=3)&lt;br /&gt;@DiscriminatorValue(value="PRI")&lt;br /&gt;public class CombinacionColorPrimaria implements Serializable {&lt;br /&gt;   &lt;br /&gt;    //seam-gen attributes (you should probably edit these)&lt;br /&gt;    private Long id;&lt;br /&gt;    private Integer version;&lt;br /&gt;    private Color color;&lt;br /&gt;   &lt;br /&gt;    //add additional entity attributes&lt;br /&gt;   &lt;br /&gt;    //seam-gen attribute getters/setters with annotations (you probably should edit)&lt;br /&gt;       &lt;br /&gt;    @Id @GeneratedValue&lt;br /&gt;    public Long getId() {&lt;br /&gt;         return id;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void setId(Long id) {&lt;br /&gt;         this.id = id;&lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;    @Version&lt;br /&gt;    public Integer getVersion() {&lt;br /&gt;         return version;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private void setVersion(Integer version) {&lt;br /&gt;         this.version = version;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;   @ManyToOne&lt;br /&gt;    public Color getColor() {&lt;br /&gt;        return color;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void setColor(Color color) {&lt;br /&gt;        this.color = color;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;package es.miao;&lt;br /&gt;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;import javax.persistence.*;&lt;br /&gt;&lt;br /&gt;import org.hibernate.validator.Length;&lt;br /&gt;&lt;br /&gt;@Entity&lt;br /&gt;@DiscriminatorValue(value="SEC")&lt;br /&gt;public class CombinacionColorSecundaria extends CombinacionColorPrimaria implements Serializable {&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-4970998855204303694?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/4970998855204303694/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=4970998855204303694&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4970998855204303694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/4970998855204303694'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/ejemplo-heritance-jpa.html' title='Ejemplo heritance jpa'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-3631908739204107068</id><published>2007-06-13T05:51:00.000-07:00</published><updated>2007-06-13T05:52:28.032-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jpa'/><title type='text'>DiscriminatorColumn problem</title><content type='html'>@DiscriminatorColumn(name="tipo", discriminatorType=DiscriminatorType.STRING, length=20)&lt;br /&gt;@DiscriminatorValue(value="PRIM")&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;No hay que poner en la clase java la propiedad!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-3631908739204107068?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/3631908739204107068/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=3631908739204107068&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3631908739204107068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/3631908739204107068'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/discriminatorcolumn-problem.html' title='DiscriminatorColumn problem'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4821174228359780245.post-5501105774027281198</id><published>2007-06-13T04:31:00.001-07:00</published><updated>2007-09-05T06:00:06.382-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jpa'/><title type='text'>anotaciones colecciones persistencia</title><content type='html'>@OneToMany(mappedBy="aplicacion", cascade=CascadeType.ALL)&lt;br /&gt;  public List&lt;pieza&gt; getPiezas() {&lt;br /&gt;      return piezas;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;   @ManyToOne&lt;br /&gt;   public Aplicacion getAplicacion() {&lt;br /&gt;       return this.aplicacion;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; @ManyToMany(targetEntity=GrupoMusica.class)&lt;br /&gt;    @JoinTable(name="MUSICOSENGRUPO",&lt;br /&gt;            joinColumns=&lt;br /&gt;            @JoinColumn(name="musico_ID", referencedColumnName="id"),&lt;br /&gt;        inverseJoinColumns=&lt;br /&gt;            @JoinColumn(name="grupo_ID", referencedColumnName="id"))&lt;br /&gt;    public List&lt;grupomusica&gt; getGrupos() {&lt;br /&gt;        return grupos;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    @ManyToMany(targetEntity=Musico.class)&lt;br /&gt;    @JoinTable(name="MUSICOSENGRUPO",&lt;br /&gt;            joinColumns=&lt;br /&gt;            @JoinColumn(name="grupo_ID", referencedColumnName="id"),&lt;br /&gt;        inverseJoinColumns=&lt;br /&gt;            @JoinColumn(name="musico_ID", referencedColumnName="id"))&lt;br /&gt;    public List&lt;musico&gt; getMusicos() {&lt;br /&gt;        return musicos;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pieza&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4821174228359780245-5501105774027281198?l=enjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enjava.blogspot.com/feeds/5501105774027281198/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4821174228359780245&amp;postID=5501105774027281198&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5501105774027281198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4821174228359780245/posts/default/5501105774027281198'/><link rel='alternate' type='text/html' href='http://enjava.blogspot.com/2007/06/anotaciones-colecciones-persistencia.html' title='anotaciones colecciones persistencia'/><author><name>Juan Antonio Ruz</name><uri>http://www.blogger.com/profile/18040081420579618749</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
