<?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-5458598926546072955</id><updated>2011-12-22T06:30:48.162-08:00</updated><category term='OC4J SERVER'/><category term='AJAX TAGs'/><category term='JONAS SERVER'/><category term='Consolas'/><category term='SERVLET'/><category term='JARs'/><category term='JAVA'/><category term='DEPENDENCY'/><category term='AXIS1'/><category term='Fechas'/><category term='MQ'/><category term='Hibernate'/><category term='AJAX'/><category term='Jsf'/><category term='XML'/><category term='AXIS2'/><category term='JODA'/><category term='JAKARTA'/><category term='WebSphere'/><category term='Web Service'/><category term='SPRING MVC'/><category term='SOAP'/><category term='JEXCEL'/><category term='Frameworks'/><category term='Jdbc'/><category term='JNDI'/><category term='MAVEN'/><category term='STRUTS 1.3'/><category term='SPRING SECURITY'/><category term='JAVAMAIL'/><category term='Ibatis'/><category term='GenericDao'/><category term='Pool Conexiones'/><category term='SPRING 3'/><category term='ECLIPSE'/><category term='JMF'/><category term='Quarz'/><category term='JAX-WS'/><category term='DisplayTags'/><category term='Spring'/><category term='HTTPCLIENT'/><category term='J2EE'/><category term='GLASSFISH SERVER'/><category term='BLOB'/><category term='Applet'/><category term='CALIDAD DE SOFTWARE'/><title type='text'>FrameWorks JAVA</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-717376796692887766</id><published>2011-08-21T10:10:00.000-07:00</published><updated>2011-08-21T10:53:11.760-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DEPENDENCY'/><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><category scheme='http://www.blogger.com/atom/ns#' term='JARs'/><title type='text'>REPOSITORIOS REMOTOS MAVEN</title><content type='html'>Muchas veces cuando queremos realizar una aplicación JAVA, ya por costumbre y buenas practicas utilizamos &lt;strong&gt; MAVEN&lt;/strong&gt;  para la construcción de nuestro aplicativo y por desgracia nos encontramos trabajando en una PC nueva o simplemente no tenemos nuestro repositorio &lt;strong&gt; MAVEN &lt;/strong&gt;  local cargado como para que el &lt;strong&gt; POM.xml &lt;/strong&gt; obtenga las librerías automáticamente de ahí. &lt;br /&gt;&lt;br /&gt;En estos casos dependemos de forma obligatorio de los repositorios MAVEN remotos y mientras nuestro aplicativos requiera de mas versiones especificas o si esta integrando varios Frameworks, etc , etc, la necesidad y búsqueda de las librerías será mas tediosa y bueno eso de estar haciéndolo de forma manual es incomodo, así mejor que MAVEN lo haga por ti. Debido a eso aquí les comparto unos TAGs de MAVEN que mapean varios repositorios remotos ya sean &lt;strong&gt; RELEASE&lt;/strong&gt;  o &lt;strong&gt; SNAPSHOTS &lt;/strong&gt;,  con los cuales se podrán bajar rápidamente todas las versiones de librerías posibles  (Hasta el momento nunca me ha fallado). &lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Para fines de visualización en el &lt;strong&gt; BLOG&lt;/strong&gt;  he cambiado los símbolos de Mayor y Menor por los Corchetes”. &lt;/strong&gt;&lt;br /&gt;&lt;font color="yellow" &gt; &lt;br /&gt;		[!-- ********************************************** --]&lt;br /&gt;		[!-- **** REPOSITORIOS DEL PROYECTO **** --]&lt;br /&gt;		[!-- ********************************************** --]&lt;/font&gt;                    &lt;br /&gt;                 &lt;font color=”green”&gt;  [repositories]&lt;br /&gt;		  		        &lt;br /&gt;                           &lt;strong&gt; [!-- ****** RELEASE ****** --]   &lt;/strong&gt;&lt;br /&gt;			   [repository]&lt;br /&gt;					[id]atlassian[/id]&lt;br /&gt;					[url]http://maven.atlassian.com/repository/public[/url]&lt;br /&gt;				    [releases] [enabled] true[/enabled] [/releases]&lt;br /&gt;				    [snapshots] [enabled] false [/enabled] [/snapshots]&lt;br /&gt;			   [/repository]&lt;br /&gt;  							&lt;br /&gt;	           [repository]&lt;br /&gt;	                [id]maven.org.repo2[/id]&lt;br /&gt;	                [name]Repository of Maven.org[/name]&lt;br /&gt;	                [url]http://search.maven.org/#search[/url] &lt;br /&gt;	            [/repository]&lt;br /&gt;					&lt;br /&gt;	            [repository]&lt;br /&gt;	                [id]search.maven.org[/id]&lt;br /&gt;	                [name]Repository of Maven.org[/name]&lt;br /&gt;	                [url]http://search.maven.org[/url]&lt;br /&gt;	            [/repository]&lt;br /&gt;&lt;br /&gt;	            [repository]&lt;br /&gt;	                [id]itextpdf.com[/id]&lt;br /&gt;	                [name]Maven Repository for iText[/name]&lt;br /&gt;	                [url]http://maven.itextpdf.com[/url]&lt;br /&gt;	            [/repository] &lt;br /&gt;		        &lt;br /&gt;		        [repository]&lt;br /&gt;		             [id]repository.jboss.com[/id]&lt;br /&gt;		             [name]Jboss Repository for Maven[/name]&lt;br /&gt;		             [url]http://repository.jboss.com[/url]&lt;br /&gt;		        [/repository]		     &lt;br /&gt;						&lt;br /&gt;		        [repository]&lt;br /&gt;		             [id]snapshots.jboss.org[/id]&lt;br /&gt;		             [name]Jboss Snapshot Repository for Maven[/name]&lt;br /&gt;		             [url]http://snapshots.jboss.org/maven2[/url]&lt;br /&gt;		        [/repository]	         	         &lt;br /&gt;	        &lt;br /&gt;		        [repository]&lt;br /&gt;		             [id]java.net[/id]&lt;br /&gt;		             [name]Repository of Java.net[/name]&lt;br /&gt;		             [url]http://download.java.net/maven/1[/url]&lt;br /&gt;		        [/repository]&lt;br /&gt;&lt;br /&gt;		        [repository]&lt;br /&gt;		             [id]deltaset.org[/id]&lt;br /&gt;		             [name]Repository of Deltaset[/name]&lt;br /&gt;		             [url]http://deltaset.googlecode.com/svn/maven2[/url]&lt;br /&gt;		        [/repository]		&lt;br /&gt;			&lt;br /&gt;		        [repository]&lt;br /&gt;		             [id]prime.com[/id]&lt;br /&gt;		             [name]Repository of PrimeFaces[/name]&lt;br /&gt;		             [url]http://repository.prime.com.tr/org[/url]&lt;br /&gt;		        [/repository]	&lt;br /&gt;		&lt;br /&gt;				[repository]&lt;br /&gt;					 [id]com.springsource.repository.maven.milestone[/id]&lt;br /&gt;				  [name]Spring Framework Maven Milestone Releases (Maven Central Format)[/name]&lt;br /&gt;					 [url]http://maven.springframework.org/milestone[/url]&lt;br /&gt;				[/repository]&lt;br /&gt;	 &lt;br /&gt;				[repository]&lt;br /&gt;					 [id]maven-repository2.dev.java.net[/id]&lt;br /&gt;					 [name]Java.net Repository for Maven 2[/name]&lt;br /&gt;					 [url]http://download.java.net/maven/2[/url]&lt;br /&gt;				[/repository]&lt;br /&gt;				&lt;br /&gt;				[repository]&lt;br /&gt;					 [id]mvnrepository.com[/id]&lt;br /&gt;					 [name]mvnrepository.com[/name]&lt;br /&gt;					 [url]http://mvnrepository.com[/url]&lt;br /&gt;				[/repository]&lt;br /&gt;										&lt;br /&gt;				[repository]&lt;br /&gt;					[id]www.mvnbrowser.com[/id]&lt;br /&gt;					[name]www.mvnbrowser.com[/name]&lt;br /&gt;					[url]http://www.mvnbrowser.com[/url]&lt;br /&gt;				[/repository]			 						&lt;br /&gt;				 &lt;br /&gt;				[repository]&lt;br /&gt;				    [id]objectweb[/id]&lt;br /&gt;				    [name]Objectweb repository[/name]&lt;br /&gt;				    [url]http://maven.objectweb.org/maven2[/url]&lt;br /&gt;				[/repository]&lt;br /&gt;				 &lt;br /&gt;				[repository]&lt;br /&gt;				    [id]ops4j.repository[/id]&lt;br /&gt;				    [name]OPS4J Repository[/name]&lt;br /&gt;				    [url]http://repository.ops4j.org/maven2[/url]&lt;br /&gt;				[/repository]&lt;br /&gt;				&lt;br /&gt;				[repository]&lt;br /&gt;				    [id]Codehaus Snapshots[/id]&lt;br /&gt;				    [url]http://snapshots.repository.codehaus.org/[/url]&lt;br /&gt;				[/repository]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;              &lt;strong&gt;  [!-- **** SNAPSHOTS **** --]  &lt;/strong&gt;&lt;br /&gt;	            [repository]&lt;br /&gt;		             [id]apache-maven-snapshots[/id]&lt;br /&gt;		             [name]Repository of Snapshots[/name]&lt;br /&gt;		             [url]http://repository.apache.org/snapshots[/url]&lt;br /&gt;	            [/repository]&lt;br /&gt;	&lt;br /&gt;	            [repository]&lt;br /&gt;	                [id]apache.snapshots[/id]&lt;br /&gt;	                [name]ASF Maven 2 Snapshot[/name]&lt;br /&gt;	                [url]http://people.apache.org/builds/struts/2.1.8.1/m2-staging-repository[/url]&lt;br /&gt;	            [/repository]&lt;br /&gt;	            &lt;br /&gt;				[repository]					[id]com.springsource.repository.maven.snapshot[/id]&lt;br /&gt;[name]SpringSource Enterprise Bundle Maven Repository - SpringSource Snapshot Releases[/name]					[url]http://maven.springframework.org/snapshot[/url]&lt;br /&gt;				[/repository]&lt;br /&gt;	 		&lt;br /&gt;	    [/repositories] &lt;/font&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/5458598926546072955-717376796692887766?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/717376796692887766/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=717376796692887766' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/717376796692887766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/717376796692887766'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2011/08/repositorios-remotos-maven.html' title='REPOSITORIOS REMOTOS MAVEN'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-6458772006364838099</id><published>2011-08-21T09:43:00.000-07:00</published><updated>2011-08-21T10:53:01.281-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DEPENDENCY'/><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><category scheme='http://www.blogger.com/atom/ns#' term='JARs'/><title type='text'>BUSCADORES DE JARs</title><content type='html'>Alguna vez te has preguntado:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;¿En que JAR esta cierta clase?, ¿Donde encuentro tal o cual JAR?, ¿En que repositorio MAVEN se encuentra tal o cual artefacto? o ¿Cuántas veces al ejecutar una aplicación Web, hemos obtenido esta muy conocida Excepcion: &lt;/font&gt;&lt;/strong&gt;&lt;strong&gt;&lt;Font color="red"&gt; ‘ClassNotFoundException"&lt;/font&gt;&lt;/strong&gt;, debido a una falta de librería ya que la clase no es encontrada ?. &lt;br /&gt;&lt;br /&gt;En esta oportunidad compartiré una serie de &lt;strong&gt;links&lt;/strong&gt; de sitios Web que nos facilitan y solucionan de paso, de la manera más simple posible, el encontrar rápidamente dicha librería &lt;strong&gt; (.JAR) &lt;/strong&gt;que con urgencia requerimos. &lt;br /&gt;&lt;br /&gt;Estos son buscadores específicos de &lt;strong&gt;JARs&lt;/strong&gt; que aceptan como filtro de consulta: &lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;&lt;br /&gt;- Nombre de la clase. &lt;br /&gt;- Fragmentos del nombre. &lt;br /&gt;- Nombre del JAR. &lt;br /&gt;- Etc. &lt;/font&gt; &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;La respuesta de las Webs es un listado de librerías para que selecciones por versión las librerías requeridas. Luego, te permite descargar dicho JAR, copia la clase y muchas veces te muestra hasta su decencia &lt;strong&gt;MAVEN&lt;/strong&gt;, para que lo bajes si están utilizando &lt;strong&gt;MAVEN. &lt;/strong&gt;&lt;br /&gt; &lt;br /&gt;Aquí les comparto los &lt;strong&gt;links&lt;/strong&gt; de estos buscadores de &lt;strong&gt;JARs&lt;/strong&gt; que les facilitaran la vida realmente:&lt;br /&gt;&lt;strong&gt;&lt;font color="yellow"&gt;&lt;br /&gt;&lt;a href = "http://www.jarvana.com/jarvana" target=”blank” &gt; http://www.jarvana.com/jarvana &lt;/ a&gt;&lt;br /&gt;&lt;a href = "http://jarhalla.com" target=”blank” &gt; http://jarhalla.com &lt;/ a&gt;&lt;br /&gt;&lt;a href = "http://search.maven.org/#search" target=”blank” &gt; http://search.maven.org/#search &lt;/ a&gt;&lt;br /&gt; &lt;a href = "http://www.findjar.com" target=”blank” &gt; http://www.findjar.com &lt;/ a&gt;&lt;br /&gt; &lt;a href = "http://www.jarfinder.com" target=”blank” &gt; http://www.jarfinder.com &lt;/ a&gt;&lt;br /&gt; &lt;a href = "http://ebr.springsource.com/repository/app/search" target=”blank” &gt; http://ebr.springsource.com/repository/app/search &lt;/ a&gt; &lt;br /&gt; &lt;a href = "http://jarsearch.com" target=”blank” &gt; http://jarsearch.com &lt;/ a&gt;&lt;br /&gt; &lt;a href = "http://www.mvnsearch.org" target=”blank” &gt; http://www.mvnsearch.org &lt;/ a&gt; &lt;/font&gt; &lt;/strong&gt;&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/5458598926546072955-6458772006364838099?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/6458772006364838099/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=6458772006364838099' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6458772006364838099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6458772006364838099'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2011/08/buscadores-de-jars.html' title='BUSCADORES DE JARs'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-2920976889046497948</id><published>2011-08-20T19:22:00.001-07:00</published><updated>2011-08-20T23:12:07.366-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPRING SECURITY'/><category scheme='http://www.blogger.com/atom/ns#' term='SPRING 3'/><category scheme='http://www.blogger.com/atom/ns#' term='SPRING MVC'/><title type='text'>DEMO SPRING SECURITY 3.0.3 [BASE DE DATOS] + MVC</title><content type='html'>Hola en esta oportunidad hablare un poco sobre el tema: &lt;strong&gt; 'Spring Security' &lt;/strong&gt; específicamente amarrado no a la &lt;strong&gt; memoria&lt;/strong&gt;  sino en &lt;strong&gt; BD&lt;/strong&gt;.  En si &lt;strong&gt; Spring Security&lt;/strong&gt; es un subproyecto del &lt;strong&gt; framework Spring&lt;/strong&gt;, que nos brinda una facilidad para gestionar la seguridad de nuestras aplicaciones &lt;strong&gt; Java J2EE&lt;/strong&gt;. Las ventajas que nos brinda este Framework son: &lt;br /&gt;&lt;Font color="#FFFF99"&gt;&lt;br /&gt;- Seguridad a nivel de URL.&lt;br /&gt;- Seguridad a nivel de BD (ROLES, GRUPOS).&lt;br /&gt;- Facilidad para separar la lógica de nuestras aplicaciones del control de la seguridad, utilizando filtros.&lt;br /&gt;- Seguridad a nivel de Interfaz mediante Security Tags.&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;En la demo preparada vamos a ver, con un ejemplo que muestra la configuración de &lt;strong&gt; Spring Security&lt;/strong&gt;  para controlar el acceso a los recursos de una aplicación, por medio de la asignación de grupos de usuarios a nivel de &lt;strong&gt; Base de Datos&lt;/strong&gt;, los cuales se podrán modificar desde dicha base de datos. También, la forma de cómo controlar lo mostrado por &lt;strong&gt; Spring Security&lt;/strong&gt;  por medio de la Interfaz. También, parte del demo esta basado en &lt;strong&gt; Spring MVN&lt;/strong&gt; en lo relacionado a la navegación del aplicativo.&lt;br /&gt;&lt;br /&gt;El Script preparado esta adaptado a &lt;strong&gt; MySQL&lt;/strong&gt;, pero se podría también ser adaptado a otros motores de datos como &lt;strong&gt; ORACLE, SQL SERVER&lt;/strong&gt;, etc. Lo que si deben manejar las mismas tablas con los mismos nombres, campos, amarres y referencias. Dicho Script se encuentra en la ruta:  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt; &lt;Font color="#FFFF99"&gt;DemoSpringSecurity_MVC\src\main\resources\Script\&lt;strong&gt;ScriptSpringSecurity.sql&lt;/strong&gt; &lt;/font&gt; &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Las características del demo preparado son: Esta basado en &lt;strong&gt; JAVA J2EE&lt;/strong&gt; y consta del manejo de las siguientes tecnologías y herramientas:&lt;br /&gt;&lt;strong&gt; &lt;Font color="#FFFF99"&gt;&lt;br /&gt;-	Spring Suite v2.5&lt;br /&gt;-	SPRING SECURITY 3.0.3&lt;br /&gt;-	SPRING 3.0.3&lt;br /&gt;-	SPRING MVC 3.0.3&lt;br /&gt;-	MAVEN 2.2&lt;br /&gt;-	MySQL 5.0&lt;br /&gt;-	JSP 1.2 ( con XHTML 1.0)&lt;br /&gt;-	Include.&lt;br /&gt;-	JSTL 1.2&lt;br /&gt;-	etc &lt;/font&gt; &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Cabe recalcar el manejo de los Tags importantes que posee &lt;strong&gt; Spring Security&lt;/strong&gt;  en dicho demo los cuales son: &lt;br /&gt;&lt;br /&gt;&lt;strong&gt; - [security:authentication property="principal.username" /]  =&lt;/strong&gt;  Permite el la visualización del usuario logueado en el sistema.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; -[a href="[c:url value="/j_spring_security_logout" /]" ] =&lt;/strong&gt;  Permite ejecutar un Link para cerrar la sesión de Spring Security.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; - [security:authorize ifAllGranted]   =&lt;/strong&gt;  Aplicado al usuario con todos los roles.&lt;br /&gt;&lt;strong&gt; - [security:authorize ifAnyGranted] =&lt;/strong&gt;  Aplicado al usuario con algún rol especifico.&lt;br /&gt;&lt;strong&gt; - [security:authorize ifNotGranted]  =&lt;/strong&gt;  Aplicado al usuario con  sin ningún tipo de rol.&lt;br /&gt;&lt;br /&gt;Dentro del archivo: &lt;strong&gt; spring-security.xml&lt;/strong&gt;, para poder trabajar con BD se debe de realizar la configuración siguiente:&lt;br /&gt;&lt;Font color="#FFFF99"&gt;&lt;br /&gt;       &lt;strong&gt; [!-- **** SEGURIDAD: 'MANAGER DE AUTENTICACION' **** --]   &lt;/strong&gt;   &lt;br /&gt;	[security:authentication-manager alias="authenticationManager" ]&lt;br /&gt;	       [security:authentication-provider user-service-ref="userService" /]&lt;br /&gt;    [/security:authentication-manager]&lt;br /&gt;     	     	&lt;br /&gt;       &lt;strong&gt; [!-- **** BEAN 'JDBCDAOIMPL' **** --]     &lt;/strong&gt;&lt;br /&gt;    [beans:bean id="userService" class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl" ]    &lt;br /&gt;           [beans:property name="dataSource"        ref="seguridadDataSource" /]&lt;br /&gt;           [beans:property name="enableGroups"      value="true"  /]   &lt;br /&gt;           [beans:property name="enableAuthorities" value="false" /]   &lt;br /&gt;    [/beans:bean]&lt;br /&gt;    	                    	                &lt;br /&gt;   &lt;strong&gt; [!-- **** BEAN 'DATASOURCE' **** --]   &lt;/strong&gt;   &lt;br /&gt;	[beans:bean id="seguridadDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" ]&lt;br /&gt;		   [beans:property name="driverClassName" value="com.mysql.jdbc.Driver" /]&lt;br /&gt;		   [beans:property name="url"      value="jdbc:mysql://localhost:3306/DB_SPRING_SECURITY" /]&lt;br /&gt;		   [beans:property name="username" value="root" /]&lt;br /&gt;		   [beans:property name="password" value="root" /]&lt;br /&gt;	[/beans:bean]&lt;/font&gt; &lt;br /&gt;&lt;br /&gt;En esta configuración lo resaltante es justamente la selección de las dos formas de trabajo con BD: &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;[beans:property name="enableGroups"      value="true"  /] = Para habilitar el manejo a nivel de GRUPOS.   &lt;br /&gt;&lt;br /&gt;[beans:property name="enableAuthorities" value="false" /] = Para habilitar el manejo a nivel de ROLES. &lt;/font&gt; &lt;/strong&gt;   &lt;br /&gt;&lt;br /&gt;Por otro lado los &lt;strong&gt; GRUPOS&lt;/strong&gt;  conocidos son:  &lt;br /&gt;&lt;strong&gt; - ROLE_ADMIN: &lt;/strong&gt;   Grupo de Administradores.&lt;br /&gt;&lt;strong&gt; - ROLE_USER: &lt;/strong&gt;    Grupo de Usuarios.&lt;br /&gt;&lt;br /&gt;Pero se pueden registrar en BD otros grupos en mi caso registre:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; -  ROLE_SUPERVISOR =&lt;/strong&gt;  Grupo de Supervisores.&lt;br /&gt;&lt;br /&gt;Y se configuran en:   &lt;strong&gt; spring-security.xml&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Las tablas de BD utilizadas de forma STANDAR son:&lt;br /&gt;&lt;strong&gt; &lt;Font color="#FFFF99"&gt;&lt;br /&gt;- USERS&lt;br /&gt;- GROUPS&lt;br /&gt;- GROUP_MEMBERS&lt;br /&gt;- AUTHORITIES&lt;br /&gt;- GROUP_AUTHORITIES&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Luego de su configuración se puede probar este Query para ver los amarres respectivos:&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;&lt;br /&gt;    SELECT U.USERNAME, U.PASSWORD, U.ENABLED, &lt;br /&gt;           GA.AUTHORITY, GM.GROUP_ID &lt;br /&gt;    FROM   USERS             U,&lt;br /&gt;           GROUP_AUTHORITIES GA,&lt;br /&gt;           GROUP_MEMBERS     GM&lt;br /&gt;    WHERE  U.USERNAME  = GM.USERNAME&lt;br /&gt;    AND    GA.GROUP_ID = GM.GROUP_ID; &lt;/font&gt;&lt;/strong&gt;	&lt;br /&gt;&lt;br /&gt;La Navegación y redireccionamiento se puede controlado desde el mismo archivo de configuración: &lt;strong&gt; spring-security.xml&lt;/strong&gt;, o hacerle referencia a una clase controladora (que es la forma que en este caso estamos controlado), llamada: &lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;&lt;br /&gt;DemoSpringSecurity_MVC\src\main\java\org\java\security\controller\LoginController.java &lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;La Configuración de &lt;strong&gt;Privilegios Inicial 'Por GRUPO'&lt;/strong&gt; aplicada es:  &lt;br /&gt;&lt;Font color="#FFFF99"&gt;&lt;br /&gt;&lt;strong&gt;I. RGUERRA: &lt;/strong&gt;	&lt;br /&gt;1-	 	- GRUPO:	[ ROLE_ADMIN ]&lt;br /&gt;2-	 	- ESTADO:	[ ACTIVADO ]&lt;br /&gt;3-	 	- PROVILEGIO:	[ listado, informacion ]&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;II. RLOZA: &lt;/strong&gt;	&lt;br /&gt;1-	 	- GRUPO:	[ ROLE_USER ]&lt;br /&gt;2-	 	- ESTADO:	[ ACTIVADO ]&lt;br /&gt;3-	 	- PROVILEGIO:	[ listado, informacion ]&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;III. CCOTRINA: &lt;/strong&gt;	&lt;br /&gt;1-	 	- GRUPO:	[ ROLE_SUPERVISOR ]&lt;br /&gt;2-	 	- ESTADO:	[ ACTIVADO ]&lt;br /&gt;3-	 	- PROVILEGIO:	[ listado ] &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;El &lt;strong&gt;'NO ACCESO'&lt;/strong&gt; de algún sitio debido a &lt;strong&gt;'PRIVILEGIOS'&lt;/strong&gt;, redireccionara de forma AUTOMÁTICA a: &lt;strong&gt;&lt;font  color='red'&gt;[accesoRestringido]&lt;/font&gt; &lt;/strong&gt;.			&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;0. Validación Login: &lt;/strong&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/pCMvwQxa661bAZuLpe_vFQ?feat=embedwebsite"&gt;&lt;img src="https://lh3.googleusercontent.com/-cy6wkQzdhwA/TlB6-WpRFeI/AAAAAAAAAik/_KXyNexbPAo/s144/0.LoginValidacion.jpg" height="81" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;   &lt;/table&gt;&lt;br /&gt;&lt;strong&gt;1.Login [RGuerra]: &lt;/strong&gt;&lt;br /&gt; &lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/maktup2008/SPRINGSECURITY?feat=embedwebsite#5643131013016949250"&gt;&lt;img src="https://lh3.googleusercontent.com/-ctqP2GHLR7k/TlBtwfvdkgI/AAAAAAAAAhw/0koqDKQYY0Y/s144/1.Login_RGuerra.jpg" height="84" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;/table&gt;&lt;br /&gt;&lt;strong&gt;2.MenuPrincipal [RGuerra]: &lt;/strong&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/maktup2008/SPRINGSECURITY?feat=embedwebsite#5643131038956228786"&gt;&lt;img src="https://lh4.googleusercontent.com/-Ht1LYaL0qIQ/TlBtyAX3kLI/AAAAAAAAAh4/NUjeXLGOSHo/s144/2.MenuPrincipal_RGuerra.jpg" height="84" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt;&lt;br /&gt;&lt;strong&gt;3.Listado [RGuerra]: &lt;/strong&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/maktup2008/SPRINGSECURITY?feat=embedwebsite#5643131070725620450"&gt;&lt;img src="https://lh6.googleusercontent.com/-XPcsccVfcTY/TlBtz2uSAuI/AAAAAAAAAiI/3MA1g-SoVoI/s144/3.Listado_RGuerra.jpg" height="84" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;   &lt;/table&gt;&lt;br /&gt;&lt;strong&gt;4.Informacion [RGuerra]: &lt;/strong&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/maktup2008/SPRINGSECURITY?feat=embedwebsite#5643131097083631106"&gt;&lt;img src="https://lh3.googleusercontent.com/-osJuA7e8pcQ/TlBt1Y6hVgI/AAAAAAAAAiU/AKyetdBYhJE/s144/4.Informacion_RGuerra.jpg" height="84" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;/table&gt;&lt;br /&gt;&lt;strong&gt;1.Login [RLoza]: &lt;/strong&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/maktup2008/SPRINGSECURITY?feat=embedwebsite#5643131000028150098"&gt;&lt;img src="https://lh3.googleusercontent.com/-Ajiev_loWNA/TlBtvvWsOVI/AAAAAAAAAho/UJviQSErNCQ/s144/1.Login_RLoza.jpg" height="84" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;/table&gt;&lt;br /&gt;&lt;strong&gt;2.MenuPrincipal [RLoza]: &lt;/strong&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/maktup2008/SPRINGSECURITY?feat=embedwebsite#5643131051913226626"&gt;&lt;img src="https://lh3.googleusercontent.com/-ZDFRca4VMoc/TlBtywpDqYI/AAAAAAAAAh8/lgNW-3oQ0ZA/s144/2.MenuPrincipal_RLoza.jpg" height="84" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;/table&gt;&lt;br /&gt;&lt;strong&gt;3.Informacion [RLoza]: &lt;/strong&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/maktup2008/SPRINGSECURITY?feat=embedwebsite#5643131056648953330"&gt;&lt;img src="https://lh6.googleusercontent.com/-jSGsShsJ2h0/TlBtzCSJHfI/AAAAAAAAAiA/wzty9woXpnA/s144/3.Informacion_RLoza.jpg" height="84" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;/table&gt;&lt;br /&gt;&lt;strong&gt;4.Informacion [RLoza]: &lt;/strong&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/66HBM2NoJirww6M0hO6g3w?feat=embedwebsite"&gt;&lt;img src="https://lh6.googleusercontent.com/-PeY91o2bZx8/TlBt10Zu3eI/AAAAAAAAAiY/BbNj7UxmCco/s144/5.Informacion_RLoza..jpg" height="86" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;/table&gt;&lt;br /&gt;&lt;strong&gt;1.Login [CCotrina]:  &lt;/strong&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/lh/photo/g7YbBeeirw32_2Lmwifw4g?feat=embedwebsite"&gt; &lt;img src="https://lh6.googleusercontent.com/-1drDojZi79c/TlBtv0L67_I/AAAAAAAAAhs/9DtWn2bCJfk/s144/1.Login_CCotrina.jpg" height="84" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;/table&gt;&lt;br /&gt;&lt;strong&gt;2.MenuPrincipal [CCotrina]: &lt;/strong&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/maktup2008/SPRINGSECURITY?feat=embedwebsite#5643131035194392674"&gt;&lt;img src="https://lh6.googleusercontent.com/-FT7c4wJFvfo/TlBtxyW-gGI/AAAAAAAAAh0/9exC4w_ClK8/s144/2.MenuPrincipal_CCotrina.jpg" height="84" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;/table&gt;&lt;br /&gt;&lt;strong&gt;3.Listado [CCotrina]: &lt;/strong&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/maktup2008/SPRINGSECURITY?feat=embedwebsite#5643131069956153314"&gt;&lt;img src="https://lh4.googleusercontent.com/-iS5DvrFJ7JY/TlBtzz203-I/AAAAAAAAAiE/Yry3qYYy-Q0/s144/3.Listado_CCotrina.jpg" height="84" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;/table&gt;&lt;br /&gt;&lt;strong&gt;4.Informacion [CCotrina_Protegida]: &lt;/strong&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/maktup2008/SPRINGSECURITY?feat=embedwebsite#5643131086690922050"&gt;&lt;img src="https://lh5.googleusercontent.com/-OXtFhrCad7Y/TlBt0yMtLkI/AAAAAAAAAiQ/cMmAL5ydFII/s144/4.Informacion_CCotrina_Protegida.jpg" height="84" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt;&lt;br /&gt;Si se activa la configuración deshabilitada para el Grupo: &lt;strong&gt;ROLE_SUPERVISOR &lt;/strong&gt; se mostrara: &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5.Informacion [CCotrina]: &lt;/strong&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="https://picasaweb.google.com/maktup2008/SPRINGSECURITY?feat=embedwebsite#5643131080555161890"&gt;&lt;img src="https://lh6.googleusercontent.com/-AqGEd110dF0/TlBt0bV06SI/AAAAAAAAAiM/dv_Zo42Deu0/s144/4.Informacion_CCotrina.jpg" height="85" width="144" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Para descargar el demo completo pulsar &lt;a href="http://www.megaupload.com/?d=RB4DBCQC" target="blank" &gt;Aquí&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;Saludos.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-2920976889046497948?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/2920976889046497948/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=2920976889046497948' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/2920976889046497948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/2920976889046497948'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2011/08/demo-spring-security-mvc_20.html' title='DEMO SPRING SECURITY 3.0.3 [BASE DE DATOS] + MVC'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/-cy6wkQzdhwA/TlB6-WpRFeI/AAAAAAAAAik/_KXyNexbPAo/s72-c/0.LoginValidacion.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-9000980166457180337</id><published>2011-08-15T10:17:00.000-07:00</published><updated>2011-08-15T10:38:59.044-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pool Conexiones'/><category scheme='http://www.blogger.com/atom/ns#' term='JNDI'/><category scheme='http://www.blogger.com/atom/ns#' term='OC4J SERVER'/><title type='text'>CONFIGURACION DE POOL DE CONEXIONES EN OC4J SERVER 10.1.3</title><content type='html'>&lt;br /&gt;En esta oportunidad mostrare este tutorial preparado paso a paso, donde se muestra la configuración de un &lt;STRONG&gt;DataSource&lt;/STRONG&gt; y su amarre respectivo a un &lt;STRONG&gt;Pool de Conexión&lt;/STRONG&gt; que crearemos en un &lt;STRONG&gt;Contenedor J2EE Standalone del OAS (ORACLE APLICATION SERVER), llamado OC4J v2.1&lt;/STRONG&gt; de forma independiente, sobre una plataforma WINDOWS XP. &lt;br /&gt;&lt;br /&gt;El detalle en si en el tutorial paso a paso lo tengo listo para descargar: &lt;br /&gt; &lt;br /&gt;Para descargar el tutorial completo pulsar: &lt;a href="http://www.megaupload.com/?d=WC0IHXUK" target="_blank" &gt;AQUÌ.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-9000980166457180337?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/9000980166457180337/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=9000980166457180337' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/9000980166457180337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/9000980166457180337'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2011/08/configuracion-de-pool-de-conexiones-en_15.html' title='CONFIGURACION DE POOL DE CONEXIONES EN OC4J SERVER 10.1.3'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-3594427754434508323</id><published>2011-08-15T10:12:00.000-07:00</published><updated>2011-08-15T10:16:45.554-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pool Conexiones'/><category scheme='http://www.blogger.com/atom/ns#' term='JNDI'/><category scheme='http://www.blogger.com/atom/ns#' term='GLASSFISH SERVER'/><title type='text'>CONFIGURACION DE POOL DE CONEXIONES EN GLASSFISH  SERVER 2.1</title><content type='html'>&lt;br /&gt;En esta oportunidad mostrare este tutorial preparado paso a paso, donde se muestra la configuración de un &lt;STRONG&gt;DataSource&lt;/STRONG&gt; y su amarre respectivo a un &lt;STRONG&gt;Pool de Conexión&lt;/STRONG&gt; que crearemos en un &lt;STRONG&gt;Servidor de Aplicaciones GLASSFISH v2.1&lt;/STRONG&gt; de forma independiente, sobre una plataforma WINDOWS XP. &lt;br /&gt;&lt;br /&gt;El detalle en si en el tutorial paso a paso lo tengo listo para descargar: &lt;br /&gt; &lt;br /&gt;Para descargar el tutorial completo pulsar: &lt;a href="http://www.megaupload.com/?d=193OB5I0" target="_blank" &gt;AQUÌ.&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-3594427754434508323?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/3594427754434508323/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=3594427754434508323' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/3594427754434508323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/3594427754434508323'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2011/08/configuracion-de-pool-de-conexiones-en.html' title='CONFIGURACION DE POOL DE CONEXIONES EN GLASSFISH  SERVER 2.1'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-1895957177248575019</id><published>2011-08-11T09:59:00.000-07:00</published><updated>2011-08-15T10:22:51.738-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GLASSFISH SERVER'/><title type='text'>INSTALACIÓN GLASSFISH SERVER v2.1</title><content type='html'>En esta oportunidad mostrare este tutorial preparado paso a paso, donde se muestra la instalación de un &lt;STRONG&gt;Servidor de Aplicaciones GLASSFISH v2.1&lt;/STRONG&gt; de forma independiente, sobre una plataforma WINDOWS XP. &lt;br /&gt;&lt;br /&gt;El detalle en si en el tutorial: &lt;br /&gt; &lt;br /&gt;Para descargar el tutorial completo pulsar: &lt;a href="http://www.megaupload.com/?d=WN5CDBI5" target="_blank" &gt;AQUÌ.&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-1895957177248575019?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/1895957177248575019/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=1895957177248575019' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1895957177248575019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1895957177248575019'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2011/08/instalacion-glassfish-server-v21.html' title='INSTALACIÓN GLASSFISH SERVER v2.1'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-895723484964148584</id><published>2011-08-11T09:43:00.000-07:00</published><updated>2011-08-15T10:23:14.342-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JONAS SERVER'/><title type='text'>INSTALACIÓN JONAS SERVER v4.8.6</title><content type='html'>En esta oportunidad mostrare este tutorial preparado paso a paso, donde se muestra la instalación de un &lt;STRONG&gt;Servidor de Aplicaciones JONAS v4.8.6&lt;/STRONG&gt; sobre una plataforma WINDOWS XP. &lt;br /&gt;&lt;br /&gt;El detalle en si en el tutorial: &lt;br /&gt;&lt;br /&gt;Para descargar el tutorial completo pulsar: &lt;a href="http://www.megaupload.com/?d=ECLOF760" target="_blank" &gt;AQUI.&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-895723484964148584?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/895723484964148584/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=895723484964148584' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/895723484964148584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/895723484964148584'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2011/08/instalacion-jonas-server-v486.html' title='INSTALACIÓN JONAS SERVER v4.8.6'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-1176592074217549858</id><published>2011-08-11T07:59:00.000-07:00</published><updated>2011-08-14T18:34:39.646-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPRING 3'/><category scheme='http://www.blogger.com/atom/ns#' term='STRUTS 1.3'/><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><category scheme='http://www.blogger.com/atom/ns#' term='DisplayTags'/><title type='text'>INTEGRACIÓN SPRING 3.0 + STRUTS 1.3</title><content type='html'>Hola en esta oportunidad mostrare un muy buen proyecto demo, que muestra el manejo integrado de estos dos muy buenos &lt;strong&gt;Framework JAVA. &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;El proyecto demo preparado esta basado en &lt;strong&gt;JAVA J2EE&lt;/strong&gt; y consta del manejo de las siguientes tecnologías y herramientas:&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;&lt;br /&gt;-	Spring Suite v2.5&lt;br /&gt;-	STRUST 1.3&lt;br /&gt;-	SPRING 3.0&lt;br /&gt;-	SPRING JDBC&lt;br /&gt;-	MAVEN 2.2&lt;br /&gt;-	MySQL 5.0&lt;br /&gt;-	JSP 1.2 ( con XHTML 1.0)&lt;br /&gt;-	Include.&lt;br /&gt;-	Internacionalización&lt;br /&gt;-	DisplayTags&lt;br /&gt;-	Log4j, &lt;br /&gt;-	etc &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;El demo preparado consta en si de un mantenimiento completo (CRUD) , desde el Login que genera la sesión, pasando por los típicos validators Struts, el motor de datos y la inyección de dependencias va por parte de Spring y la capa de persistencia es controlada por &lt;strong&gt;Spring JDBC&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;En resumen:&lt;br /&gt;&lt;strong&gt; &lt;Font color="#FFFF99"&gt;&lt;br /&gt;- STRUST:    CAPA VISTA.&lt;br /&gt;- SPRING:    CAPA NEGOCIO.&lt;br /&gt;- SPRING JDBC: CAPA PERSISTECIA.  &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;El demo esta bien detallado en lo que respecta al manejo por el lado de &lt;strong&gt; STRUT 1.3: &lt;/strong&gt; &lt;strong&gt;&lt;Font color="#FFFF99"&gt;Action, Form, MappingDispatchAction, ActionForward, ActionRedirect,  HttpSession, ActionErrors (Parametrizado), Internacionalizacion, etc. &lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Y por el lado de &lt;strong&gt; SPRING 3.0: &lt;/strong&gt;  &lt;strong&gt;&lt;Font color="#FFFF99"&gt;Inyección de dependencia, integración con Log4j y MySql, mapeo de Beans, JdbcTemplate, ParameterizedRowMapper, etc. &lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt; &lt;a href="https://picasaweb.google.com/lh/photo/3sRAQOrA8z4fvVB80BI-AQ?feat=embedwebsite"&gt;&lt;img src="https://lh6.googleusercontent.com/-FRsTV1YZYsw/TkP-G99vDoI/AAAAAAAAAgA/82RVnErqvto/s144/SystemCRGA_00.JPG" height="71" width="144" /&gt;&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt; &lt;a href="https://picasaweb.google.com/lh/photo/A-gvIlEqF5WBuaFoivZing?feat=embedwebsite"&gt;&lt;img src="https://lh5.googleusercontent.com/-VZyUF_fffrY/TkP-H6YWomI/AAAAAAAAAgE/vNoZSn4u1To/s144/SystemCRGA_01.JPG" height="56" width="144" /&gt;&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt; &lt;a href="https://picasaweb.google.com/lh/photo/i9GBnoKOe5BUW-FLISuaRg?feat=embedwebsite"&gt;&lt;img src="https://lh5.googleusercontent.com/-AFV36z5UcT0/TkP-IUpw48I/AAAAAAAAAgI/5OjmW4uqvFY/s144/SystemCRGA_02.JPG" height="81" width="144" /&gt;&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt; &lt;a href="https://picasaweb.google.com/lh/photo/S0S2LqtzuAEdJ8R5-S_BGg?feat=embedwebsite"&gt;&lt;img src="https://lh4.googleusercontent.com/-3ajcU9dC-ns/TkP-JfE7PbI/AAAAAAAAAgM/P2_8lfqwu3o/s144/SystemCRGA_03.JPG" height="77" width="144" /&gt;&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt; &lt;a href="https://picasaweb.google.com/lh/photo/9m4aYiOfez3ns3-l-YVxEQ?feat=embedwebsite"&gt;&lt;img src="https://lh6.googleusercontent.com/-0Rhuvn2rwqU/TkP-KspERnI/AAAAAAAAAgQ/K1F2HeFxr-c/s144/SystemCRGA_04.JPG" height="80" width="144" /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt; &lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt; &lt;a href="https://picasaweb.google.com/lh/photo/XmSwbL37OmJ5NGmNP8LwUQ?feat=embedwebsite"&gt;&lt;img src="https://lh4.googleusercontent.com/-wJHf4xJRBiM/TkP-KzfNfuI/AAAAAAAAAgU/tZHt1Ixm-8w/s144/SystemCRGA_05.JPG" height="69" width="144" /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt; &lt;a href="https://picasaweb.google.com/lh/photo/1dIo9gGIZQ724X2yVBaA-w?feat=embedwebsite"&gt;&lt;img src="https://lh3.googleusercontent.com/-rud5WEPLF0Y/TkP-LSIO27I/AAAAAAAAAgY/VkHQPEksjPo/s144/SystemCRGA_06.JPG" height="65" width="144" /&gt;&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;Para poder hacer funcionar el aplicativo será necesario que manejes una &lt;strong&gt; IDE&lt;/strong&gt;  con soporte para MAVEN, de recomendación &lt;strong&gt; ECLIPSE&lt;/strong&gt;  y en especial &lt;strong&gt; Spring Suite v2.5. &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Sepa necesario que te descargues las librerías (JARs) requeridas por el aplicativo mediante MAVEN a tu repositorio local &lt;strong&gt; (En el POM.xml están especificadas todas) &lt;/strong&gt;. Se pueden ayudar el tuto: &lt;br /&gt;&lt;a href="http://frameworksjava2008.blogspot.com/2010/12/manejo-maven-desde-sts.html" target="blank" &gt; Manejo Maven desde STS &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para descargar el demo pulsar &lt;a href="http://www.megaupload.com/?d=JBXWO125" target="blank" &gt;Aquí&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;Saludos.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-1176592074217549858?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/1176592074217549858/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=1176592074217549858' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1176592074217549858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1176592074217549858'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2011/08/integracion-spring-30-struts-1.html' title='INTEGRACIÓN SPRING 3.0 + STRUTS 1.3'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-FRsTV1YZYsw/TkP-G99vDoI/AAAAAAAAAgA/82RVnErqvto/s72-c/SystemCRGA_00.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-5661677623751538550</id><published>2010-12-30T10:15:00.000-08:00</published><updated>2010-12-30T20:40:45.390-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEXCEL'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>MANEJO API JEXCEL</title><content type='html'>El otro día me escribieron a mi email una consulta sobre manipulación de ficheros .xls desde Java y recomendé un API ya bastante antigua llamada &lt;strong&gt;POI &lt;/strong&gt; de &lt;strong&gt;Jakarta&lt;/strong&gt;, que era una que había utilizado hace varios años atrás, pero luego pensé y me dije si habrán creado alguna mejor forma para la manipulación de dichos ficheros Excel que son tan populares y me puse a buscar en la Internet la existencia de alguna API nueva y me encontré con una muy buena pero no tan nueva jejeje, llamada &lt;strong&gt;JExcel API &lt;/strong&gt;. &lt;br /&gt;Y justo me puse a entenderla y postear sobre ella. Esta &lt;strong&gt;API (http://jexcelapi.sourceforge.net) &lt;/strong&gt; es una &lt;strong&gt;API Opensource &lt;/strong&gt;  para especializado en la manipulación &lt;strong&gt; (Read/Write) &lt;/strong&gt; de ficheros .xls sobre ccualquier sistema operativo donde exista y  funcione una máquina virtual Java &lt;strong&gt; (es decir, no sólo Windows) &lt;/strong&gt; puede procesar y entregar las hojas de cálculo Excel. Debido a que es Java, la API se puede invocar desde dentro de un Servlet, dando así acceso a hojas de cálculo Excel a través de aplicaciones Web.&lt;br /&gt;&lt;br /&gt;El ejemplo preparado es un proyectito simple de tipo desktop sobre &lt;strong&gt;Eclipse&lt;/strong&gt;, donde ejecuto independientemente dos clases por separado. &lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt; - org.java.jexcel.read.test.ReadExcel.java&lt;br /&gt; - org.java.jexcel.write.test.WriteExcel.java&lt;br /&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;strong&gt;I. ReadExcel.java: &lt;/strong&gt; &lt;/FONT&gt; Permite la lectura de un archivo Excel que debe de ser ubicado en:  &lt;strong&gt;C://JAVA_EXCEL.xls&lt;/strong&gt;  (Este archivo lo encuentras en el SourFolder Resources del proyecto adjunto) y su salida de lo leído en consola.&lt;br /&gt;&lt;font color="green" &gt;&lt;br /&gt;&lt;br /&gt;********************************************************************&lt;br /&gt;*************************** FORMA MANUAL ***************************&lt;br /&gt;********************************************************************&lt;br /&gt;&lt;br /&gt;- CELDA #C2:   NOMBRE&lt;br /&gt;- COLUMNA #C2: 1&lt;br /&gt;- FILA #C2:    1&lt;br /&gt;&lt;br /&gt;- CELDA #C2:   APELLIDO&lt;br /&gt;- COLUMNA #C2: 2&lt;br /&gt;- FILA #C2:    1&lt;br /&gt;&lt;br /&gt;- CELDA #D2:   DNI&lt;br /&gt;- COLUMNA #D2: 3&lt;br /&gt;- FILA #D2:    1&lt;br /&gt;&lt;br /&gt;- CELDA #E2:   EDAD&lt;br /&gt;- COLUMNA #E2: 4&lt;br /&gt;- FILA #E2:    1&lt;br /&gt;&lt;br /&gt;********************************************************************&lt;br /&gt;************************* FORMA AUTOMATICA *************************&lt;br /&gt;********************************************************************&lt;br /&gt;OBTENIENDO [LABEL]: A1&lt;br /&gt;OBTENIENDO [LABEL]: A2&lt;br /&gt;OBTENIENDO [LABEL]: A3&lt;br /&gt;OBTENIENDO [LABEL]: A4&lt;br /&gt;OBTENIENDO [LABEL]: A5&lt;br /&gt;OBTENIENDO [LABEL]: B1&lt;br /&gt;OBTENIENDO [LABEL]: NOMBRE&lt;br /&gt;OBTENIENDO [LABEL]: Cesar Ricardo&lt;br /&gt;OBTENIENDO [LABEL]: Catherine Magaly&lt;br /&gt;OBTENIENDO [LABEL]: B5&lt;br /&gt;OBTENIENDO [LABEL]: C1&lt;br /&gt;OBTENIENDO [LABEL]: APELLIDO&lt;br /&gt;OBTENIENDO [LABEL]: Guerra Arnaiz&lt;br /&gt;OBTENIENDO [LABEL]: Cotrina Vasques&lt;br /&gt;OBTENIENDO [LABEL]: C5&lt;br /&gt;OBTENIENDO [LABEL]: D1&lt;br /&gt;OBTENIENDO [LABEL]: DNI&lt;br /&gt;OBTENIENDO [NUMBER]: 41816133&lt;br /&gt;OBTENIENDO [NUMBER]: 48798678&lt;br /&gt;OBTENIENDO [LABEL]: D5&lt;br /&gt;OBTENIENDO [LABEL]: E1&lt;br /&gt;OBTENIENDO [LABEL]: EDAD&lt;br /&gt;OBTENIENDO [NUMBER]: 27&lt;br /&gt;OBTENIENDO [NUMBER]: 25&lt;br /&gt;OBTENIENDO [LABEL]: E5&lt;br /&gt;OBTENIENDO [LABEL]: F1&lt;br /&gt;OBTENIENDO [LABEL]: FECHA&lt;br /&gt;OBTENIENDO [DATE]: 20 12 2010 12:00:00&lt;br /&gt;OBTENIENDO [DATE]: 21 12 2010 12:00:00&lt;br /&gt;OBTENIENDO [LABEL]: F5&lt;br /&gt;OBTENIENDO [LABEL]: G1&lt;br /&gt;OBTENIENDO [LABEL]: G2&lt;br /&gt;OBTENIENDO [LABEL]: G3&lt;br /&gt;OBTENIENDO [LABEL]: G4&lt;br /&gt;OBTENIENDO [LABEL]: G5&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;strong&gt;II. ReadExcel.java: &lt;/strong&gt;&lt;/FONT&gt;  Permite la creación de un archivo .xls, llamado:  &lt;strong&gt;C:\\JAVA_EXCEL_CREATED.xls&lt;/strong&gt;, donde se está incrustando cabeceras de texto simple, link, imágenes, etc.&lt;br /&gt;&lt;br /&gt;Para descargar el demo pulsar &lt;a href="http://www.megaupload.com/?d=5CK5ZRLG" target="blank" &gt;Aquí&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-5661677623751538550?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/5661677623751538550/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=5661677623751538550' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/5661677623751538550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/5661677623751538550'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/12/manejo-api-jexcel.html' title='MANEJO API JEXCEL'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-6917581442064933486</id><published>2010-12-24T17:29:00.000-08:00</published><updated>2010-12-24T18:17:48.728-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jdbc'/><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><category scheme='http://www.blogger.com/atom/ns#' term='Frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><title type='text'>MANEJO SPRING JDBC</title><content type='html'>Que tal en esta oportunidad hablare sobre otra opción para el manejo de la persistencia que viene como aporte de &lt;strong&gt; SPRING &lt;/strong&gt;, este es un módulo de &lt;strong&gt; SPRING &lt;/strong&gt; que brinda conexión a múltiples motores de datos de una forma muy sencilla.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Spring JDBC &lt;/strong&gt; simplifica el manejo del estándar JDBC, obviando partes importantes que comúnmente a un se le puede pasar como es la de abrir o cerrar sesiones y conexiones (DataSource) respectivas. Funciona para &lt;strong&gt; JDK 1.5 (+)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Desde &lt;strong&gt; Spring JDBC &lt;/strong&gt; uno puede heredar de la clase &lt;strong&gt; JdbcDaoSupport &lt;/strong&gt; y acceder a &lt;strong&gt; JdbcTemplate &lt;/strong&gt; que brinda un soporte para un listado de métodos especializados &lt;strong&gt; (query, queryForObject, queryForList,etc) &lt;/strong&gt;, así mismo uno puede manejar acceso a procedimientos almacenados mediante la clase &lt;strong&gt; SimpleJbcCall &lt;/strong&gt;, entre varias otras funcionalidades. &lt;br /&gt;&lt;br /&gt;El demo preparada  esta bien detallada: Trabaja con &lt;font color="#FFFF99" &gt; Spring 3.0, Maven 2.2.1, Spring JDBC 2.5.6 (JdbcDaoSupport)&lt;/font&gt; y para la prueba respectiva hay un &lt;font color="#FFFF99" &gt; JUnit TestCase&lt;/font&gt; para un mantenimiento amarrado a: &lt;font color="#FFFF99" &gt; MySql 5.1 (Script en resources). &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Para probarlo ejecutar la clase JUnit, descomentando previamente los procesos de cada mantenimiento:  &lt;font color="green" &gt; src/main/test/org/java/spring/test/TestSpringJDBC.java &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Para descargar el demo pulsar &lt;a href="http://www.megaupload.com/?d=7GSTGKL7" target="blank" &gt;Aquí&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-6917581442064933486?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/6917581442064933486/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=6917581442064933486' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6917581442064933486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6917581442064933486'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/12/manejo-spring-jdbc.html' title='MANEJO SPRING JDBC'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-1551829243158428017</id><published>2010-12-19T20:02:00.000-08:00</published><updated>2010-12-19T21:19:43.843-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><category scheme='http://www.blogger.com/atom/ns#' term='Frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><title type='text'>MANEJO SPRING v3.0</title><content type='html'>Ahora que esta tan de moda el manejo del &lt;strong&gt;Framework SPRING&lt;/strong&gt; mostrare un demo de su manejo, de una forma bien peculiar aplicada a la programación. Cabe recalcar que la idea base la cual me inspiro fue una muy similar que mostró en una exposición mi amigo &lt;strong&gt;&lt;Font color="#FFFF99"&gt; &lt;a href=" http://lshimokawa.net" target="blank" &gt; Lennon Shimokawa &lt;/a&gt; &lt;/font&gt;&lt;/strong&gt; de su demo &lt;strong&gt;TORTUGAS NINJA&lt;/strong&gt;  en su presentación sobre &lt;strong&gt;SpringCore&lt;/strong&gt;.  &lt;br /&gt;&lt;br /&gt;El demo actual a mostrar, esta basado en la leyenda de la sobre la batalla MITOLOGICA de la &lt;strong&gt;TITANOMAQUIA&lt;/strong&gt; que habla sobre batalla entre: &lt;strong&gt;"LOS DIOSES vs LOS TITANES"&lt;/strong&gt;. En aquella  batalla los &lt;strong&gt;TITANES&lt;/strong&gt; se revelan en contra de los OLIMPICOS conformados por los dioses que se reunían a debatir sus hazañas en el famoso monte OLIMPO.&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;&lt;strong&gt;DIOSES:&lt;/strong&gt;&lt;br /&gt;  - ZEUS.&lt;br /&gt;  - POSEIDON.&lt;br /&gt;  - HELIOS/APOLO/ABEL&lt;br /&gt;  - HADES.&lt;br /&gt;        &lt;br /&gt;&lt;strong&gt;TITANES:&lt;/strong&gt;&lt;br /&gt;  - CRONOS.&lt;br /&gt;  - REA. &lt;br /&gt;  - OCEANA.&lt;br /&gt;  - CRIO.&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Programaticamente, se va a representar de forma dinámica la batalla mano a mano de c/u, mediante un &lt;strong&gt;JUnitTest&lt;/strong&gt;:   &lt;br /&gt;&lt;br /&gt;&lt;font color="green" &gt; org.java.spring.batalla.TestBatallaMitologica.java &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Es importante decir que se utilizo MAVEN para la creación del proyecto JAVA y la &lt;strong&gt;IDE &lt;Font color="#FFFF99"&gt;Spring Tools Suite v2.5.1 (STS)&lt;/font&gt; &lt;/strong&gt;. Desde este &lt;a href="http://frameworksjava2008.blogspot.com/2010/12/manejo-maven-desde-sts.html" target="blank" &gt; LINK &lt;/a&gt; se puede verificar su manejo. &lt;br /&gt;&lt;br /&gt;Finalmente, al ejecutar dicha clase se obtendrá una salida en consola similar a esta:&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;&lt;strong&gt;DATOS [DIOS]: &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;- NOMBRE:&lt;/strong&gt; ZEUS&lt;br /&gt;&lt;strong&gt;- ARMA:&lt;/strong&gt;   LANZA&lt;br /&gt;&lt;strong&gt;- PODER:&lt;/strong&gt;  EL RAYO&lt;br /&gt;&lt;strong&gt;- NIVEL:&lt;/strong&gt;  100&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DATOS [TITAN]:&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;- NOMBRE:&lt;/strong&gt; OCEANA&lt;br /&gt;&lt;strong&gt;- ARMA:&lt;/strong&gt;   NO TIENE&lt;br /&gt;&lt;strong&gt;- PODER:&lt;/strong&gt;  SUPER FUERZA&lt;br /&gt;&lt;strong&gt;- NIVEL:&lt;/strong&gt;  80&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;INICIA LA BATALLA: &lt;/strong&gt;&lt;br /&gt;- EL DIOS: [ZEUS], UTILIZA SU PODER: [EL RAYO], CONTRA EL TITAN: [OCEANA]&lt;br /&gt;- EL TITAN: [OCEANA], UTILIZA SU PODER: [SUPER FUERZA], CONTRA EL DIOS: [ZEUS]&lt;br /&gt;- EL DIOS: [ZEUS], UTILIZA SU ARMA: [LANZA], CONTRA EL TITAN: [OCEANA]&lt;br /&gt;- EL TITAN: [OCEANA], UTILIZA SU PODER: [SUPER FUERZA], CONTRA EL DIOS: [ZEUS]&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;FINAL: &lt;/strong&gt;&lt;br /&gt;- GANO EL DIOS: [ZEUS]&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Para descargar el demo pulsar &lt;a href="http://www.megaupload.com/?d=YM5KW6A1" target="blank" &gt;Aquí&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-1551829243158428017?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/1551829243158428017/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=1551829243158428017' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1551829243158428017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1551829243158428017'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/12/manejo-spring-v30.html' title='MANEJO SPRING v3.0'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-603534682057848944</id><published>2010-12-19T11:43:00.000-08:00</published><updated>2010-12-19T21:17:57.203-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><category scheme='http://www.blogger.com/atom/ns#' term='ECLIPSE'/><title type='text'>MANEJO DE MAVEN DESDE (STS).</title><content type='html'>El tutorial mostrara una forma diferente de manejar MAVEN desde la &lt;strong&gt;IDE &lt;Font color="#FFFF99"&gt;Spring Tools Suite v2.5.1 (STS)&lt;/font&gt;&lt;/strong&gt;, que es en realidad un &lt;strong&gt;ECLIPSE v3.6&lt;/strong&gt; con un mayor soporte de Plugins. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #I:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Comenzaremos, configurando el MAVEN por defecto que viene con embebido en el &lt;strong&gt;Spring Source Tools Suite  v2.5.1&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #II:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Ingresamos en la barra de menú a:  &lt;br /&gt;Windows/preferences/maven/user preferentes, pulsamos el botón Browse y editamos el archivo:  &lt;br /&gt;&lt;font color="green"&gt;settings.xml&lt;/font&gt; y mapeamos: &lt;br /&gt;&lt;br /&gt;&lt;font color="green"&gt;[localRepository&gt;]C:\RepositorioMaven[/localRepository]&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #III:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Para un mejor control de nuestras librerías de JAVA, vamos a crear nuevo un Repositorio en la ruta:&lt;br /&gt;&lt;br /&gt;&lt;font color="green"&gt;C:\RepositorioMaven&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Y lo registramos en la interfaz mostrada en  el paso anterior.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #IV:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Con la IDE ya configurada vamos a crear un nuevo proyecto MAVEN&lt;br /&gt;&lt;br /&gt;&lt;font color="green"&gt;File/new/other/Maven/Maven Project&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #V:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Ingresamos el WorkSpace donde será creado dicho proyecto MAVEN.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #VI:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Filtramos por el archetype:  que deseamos utilizar:&lt;br /&gt;&lt;br /&gt;&lt;font color="green"&gt; ARCHETYPE:   maven-archetype-webapp.&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #VII:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Registramos datos importantes de lo que será el POM.xml, archivo de configuración del MAVEN. &lt;br /&gt; &lt;font color="green"&gt;&lt;br /&gt; &lt;strong&gt;- GOUPID: &lt;/strong&gt;     org.java.spring &lt;br /&gt; &lt;strong&gt;- ARTIFACTID:&lt;/strong&gt;    PROYECT_DEMO_SPRING_XML&lt;br /&gt; &lt;strong&gt;- VERSION: &lt;/strong&gt;     1.0&lt;br /&gt; &lt;strong&gt;- PACKAGE: &lt;/strong&gt;     org.java.spring.PROYECT_DEMO_SPRING_XML&lt;br /&gt; &lt;/font&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #VIII:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Al archivo de configuración &lt;strong&gt;POM.xml&lt;/strong&gt; ingresamos las dependencias de las librerías &lt;strong&gt;(.JARs) Spring 3.0&lt;/strong&gt; que vamos a utilizar, para su descarga respectiva. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #VIX:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Limpiamos el previamente el proyecto MAVEN creado y luego ejecutamos el dicho proyecto, para la validación y descarga de sus dependencias registradas&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #VX:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Verificamos la descarga de los .JARs realizada en MAVEN  DEPENDENCIES dentro del menú izquierdo. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #XI:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Registramos un PLUGIN en el POM.xml para el soporte de &lt;strong&gt;JAVA 1.6&lt;/strong&gt; al compilar.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #XII:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Limpiamos el previamente y luego ejecutamos el Proyecto MAVEN creado, para la validación y descarga de sus dependencias registradas.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #XIII:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Verificamos el proceso realizado.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #XIV:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Agregamos el soporte de SPRING al proyecto.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #XV:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Creamos los SourceFolder para TEST y para JAVA.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #XVI:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Mapeamos la configuración realizada hasta el momento.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #XVII:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Como se va a manejar Spring en el proyecto creado, creamos el archivo de configuración de Spring:&lt;br /&gt;&lt;br /&gt;&lt;font color="green"&gt;applicationContext.xml&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #XVIII:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Editamos el &lt;strong&gt;"applicationContext.xml"&lt;/strong&gt; creado, y registramos los NameSpace y esquemas con los que Spring trabajara. Así mismo creamos un paquete donde comenzaremos a trabajar y mapeamos el acceso al archivo de configuración &lt;strong&gt;"application-entityBean.xml"&lt;/strong&gt;.&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;&lt;Font color="#FFFF99"&gt;PASO #XIX:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Accedemos al archivo de configuración de BEANs de Spring &lt;strong&gt;"application-entityBean.xml"&lt;/strong&gt;, aquí se mapearan las entidades simples o anidadas de nuestra aplicación &lt;strong&gt;(Lo ingresado es simbólico)&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Para un mayor detalle de lo explicado &lt;strong&gt;(CAPTURAS DE PANTALLA), descargar el Tutorial de MAVEN(STS)&lt;/strong&gt; completo pulsar: &lt;a href="http://www.megaupload.com/?d=QZM6Y6Q0" target="blank" &gt; Aquì &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para descargar el proyecto Java-Maven demo explicado en el Tutorial pulsar  &lt;a href="http://www.megaupload.com/?d=ONN2LD64" target="blank" &gt;Aquì&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-603534682057848944?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/603534682057848944/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=603534682057848944' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/603534682057848944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/603534682057848944'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/12/manejo-maven-desde-sts.html' title='MANEJO DE MAVEN DESDE (STS).'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-8666403670473002800</id><published>2010-10-17T22:27:00.000-07:00</published><updated>2010-10-21T23:13:15.720-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX TAGs'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>MANEJO FRAMEWORK  "AJAX TAGs v1.5.1"</title><content type='html'>Luego de postear anteriormente sobre el manejo de &lt;strong&gt;AJAX&lt;/strong&gt; de forma &lt;strong&gt;NATIVA&lt;/strong&gt;, esta vez les mostrare un ejemplo de como manejar este Framework que facilita el manejo de &lt;strong&gt;AJAX&lt;/strong&gt; mediante una serie de TAGs que brinda el acceso al servidor sin la necesidad del clasico PostBack. Esta librería permite la aplicación de funcionalidad &lt;strong&gt;AJAX&lt;/strong&gt; en el desarrollo de componentes como:&lt;br /&gt;&lt;font color="#FFFF99" &gt; &lt;br /&gt; - COMBOBOX.&lt;br /&gt; - LISTAS. &lt;br /&gt; - CALLOUT. &lt;br /&gt; - PORLET. &lt;br /&gt; - TOGGLE. &lt;br /&gt; - EDITOR. &lt;br /&gt; - TREE. &lt;br /&gt; - Etc.&lt;br /&gt; &lt;/font&gt;   &lt;br /&gt;La logica de este &lt;strong&gt;Framework&lt;/strong&gt; esta basado al manejo de un &lt;strong&gt;Servlet&lt;/strong&gt; especial que extiende de la clase: &lt;strong&gt;BaseAjaxServlet&lt;/strong&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;strong&gt;&lt;br /&gt;Aqui el mapeo respectivo en el web.xml: (Ojo por motivos de Visualización he cambiado '&lt;' por '[' &amp; ']' por '&gt;')&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;[servlet][display-name]AjaxServlet[/display-name]&lt;br /&gt;[servlet-name]AjaxServlet[/servlet-name]&lt;br /&gt;[servlet-class]org.java.servlet.AjaxServlet[/servlet-class]&lt;br /&gt;  [load-on-startup]2[/load-on-startup][/servlet]  &lt;br /&gt;    &lt;br /&gt; [servlet-mapping]&lt;br /&gt;  [servlet-name]AjaxServlet[/servlet-name]&lt;br /&gt;  [url-pattern]/AjaxServlet[/url-pattern]&lt;br /&gt; [/servlet-mapping]    &lt;br /&gt;        &lt;br /&gt; [!-- **** SERVLET: CARGA LAS LIBRERIS DEL 'JAR' **** --]&lt;br /&gt; [servlet]&lt;br /&gt;  [servlet-name]sourceloader[/servlet-name]&lt;br /&gt;  [servlet-class]net.sourceforge.ajaxtags.servlets.SourceLoader[/servlet-class]&lt;br /&gt;  [init-param]&lt;br /&gt;   [param-name]prefix[/param-name]&lt;br /&gt;   [param-value]/ajaxtags[/param-value]&lt;br /&gt;  [/init-param]&lt;br /&gt; [/servlet]&lt;br /&gt;    &lt;br /&gt; [servlet-mapping]&lt;br /&gt;  [servlet-name]sourceloader[/servlet-name]&lt;br /&gt;  [url-pattern]/ajaxtags/js/*[/url-pattern]&lt;br /&gt; [/servlet-mapping]&lt;br /&gt; &lt;br /&gt; [servlet-mapping]&lt;br /&gt;  [servlet-name]sourceloader[/servlet-name]&lt;br /&gt;  [url-pattern]/img/*[/url-pattern]&lt;br /&gt; [/servlet-mapping]&lt;br /&gt; &lt;br /&gt; [servlet-mapping]&lt;br /&gt;  [servlet-name]sourceloader[/servlet-name]&lt;br /&gt;  [url-pattern]/css/*[/url-pattern]&lt;br /&gt; [/servlet-mapping]  &lt;br /&gt; [!-- ************************************** --]&lt;br /&gt; &lt;/font&gt;&lt;br /&gt;&lt;center&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/IMpbTkqF6tPJDObS2AfZjw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_fWM7zHplfWI/TLvcEp-vA4I/AAAAAAAAAds/7IswsU-uukg/s144/AJAX_TAGs.jpg" height="170" width="250" target='blank' /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; &lt;/center&gt;&lt;br /&gt;Para descargar el ejemplo completo, descargarlo de: &lt;a href="http://www.megaupload.com/?d=ZJQC1B6X" target="_blank" &gt;AQUÌ.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-8666403670473002800?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/8666403670473002800/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=8666403670473002800' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/8666403670473002800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/8666403670473002800'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/10/manejo-framework-ajax-tags-v151.html' title='MANEJO FRAMEWORK  &quot;AJAX TAGs v1.5.1&quot;'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_fWM7zHplfWI/TLvcEp-vA4I/AAAAAAAAAds/7IswsU-uukg/s72-c/AJAX_TAGs.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-1009112524187908424</id><published>2010-10-17T21:52:00.000-07:00</published><updated>2010-10-17T22:27:05.460-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>MANEJO DE "AJAX" (FORMA NATIVA)</title><content type='html'>En esta oportunidad mostrare el manejo de &lt;strong&gt; AJAX (Asynchronous JavaScript And XML) &lt;/strong&gt;  de la forma Nativa, pero en dos formas distintas de realizar. Al decir &lt;strong&gt;   forma Nativa&lt;/strong&gt;,  hago referencia a que no utilizare ningún &lt;strong&gt;  Framework&lt;/strong&gt;  especializado, sino que me apoyare en funciones &lt;strong&gt;JavaScript&lt;/strong&gt;  o mediante un simple &lt;strong&gt;fichero .JS. &lt;/strong&gt;  &lt;br /&gt;&lt;br /&gt;Lo más resaltante es el diseño  del &lt;strong&gt;fichero .JS&lt;/strong&gt; que permitirá el acceso al servidor de forma directa sin la realización de un Post Back, el fichero es el siguiente: &lt;br /&gt;&lt;font color="#FFFF99" &gt;  &lt;br /&gt;  var vAJAX;&lt;br /&gt;  &lt;br /&gt;  /*** GLOBALES ***/&lt;br /&gt;  var Id_OBJETO;&lt;br /&gt;  var URL_Redirec;&lt;br /&gt;  var Id_Mostrar;&lt;br /&gt;&lt;br /&gt; function PROCESAR_AJAX( Id_OBJETO2, URL_Redirec2, Id_Mostrar2 ){&lt;br /&gt;   &lt;br /&gt;  this.Id_OBJETO   = Id_OBJETO2;&lt;br /&gt;  this.URL_Redirec = URL_Redirec2;&lt;br /&gt;  this.Id_Mostrar  = Id_Mostrar2;   &lt;br /&gt;  &lt;br /&gt;  recuperaAjax();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; function recuperaAjax(){&lt;br /&gt;    &lt;br /&gt; //CREAMOS EL CONTROL 'XMLHttpRequest', SEGÚN EL NAVEGADOR UTILIZADO: &lt;br /&gt; if( window.XMLHttpRequest ){&lt;br /&gt;  vAJAX = new XMLHttpRequest();                    //SI NO ES 'INTERNET EXPLORER'&lt;br /&gt; }&lt;br /&gt; else{&lt;br /&gt;  vAJAX = new ActiveXObject( "Microsoft.XMLHTTP" );  //SI ES 'INTERNET EXPLORER'&lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt;//ALMACENAMOS EN EL CONTROL, LA FUNCION QUE INVOCARA CUANDO LA PETICION CAMBIE DE ESTADO &lt;br /&gt; vAJAX.onreadystatechange  =  funcionCallback;        //IMPORTANTE LOS LLAMADOS A LOS METODOS SE HACEN SIN PONER '()'&lt;br /&gt;    &lt;br /&gt; //ENVIAMOS LA PETICION...&lt;br /&gt; vAJAX.open( "GET", URL_Redirec + "?PERSONA=" + Id_OBJETO , true );&lt;br /&gt; vAJAX.send( "" );&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; function funcionCallback(){&lt;br /&gt;     //alert(Id_OBJETO);&lt;br /&gt;     alert(URL_Redirec);&lt;br /&gt;     //alert(Id_Mostrar);          &lt;br /&gt;     &lt;br /&gt;  //COMPROBAMOS SI LA PETICION SE HA COMPROBADO:  (TIENE QUE COINCIDIR CON EL ESTADO #4)&lt;br /&gt;  if( vAJAX.readyState == 4 ){&lt;br /&gt; &lt;br /&gt;  //COMPROBAMOS SI LA RESPUESTA HA SIDO CORRECTA:  (TIENE QUE COINCIDIR CON 'HTTP 200')&lt;br /&gt;  if( vAJAX.status == 200 ){&lt;br /&gt;   &lt;br /&gt;   //ESCRIBIMOS EL RESULTADO DE LA PAGINA 'HTML' MEDIANTE 'DHTML'&lt;br /&gt;   if( Id_Mostrar == "IMPRIMIR" ){&lt;br /&gt;          document.all.IMPRIMIR.innerHTML = "&lt;STRONG&gt;&lt;FONT COLOR='RED'&gt;" + vAJAX.responseText + "&lt;/FONT&gt;&lt;/STRONG&gt;"; &lt;br /&gt;   }&lt;br /&gt;   else{&lt;br /&gt;    alert("");&lt;br /&gt;   }&lt;br /&gt;   }&lt;br /&gt;  }  &lt;br /&gt; }&lt;/font&gt;&lt;br /&gt;&lt;center&gt;&lt;table style="width:auto;"&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/T0C1p3gzQtt6-g68GnVyBQ?feat=embedwebsite" target='blank' &gt;&lt;img src="http://lh6.ggpht.com/_fWM7zHplfWI/TLvWevZwlJI/AAAAAAAAAdg/LbPdFy_91So/s144/MenuPrincipalAJAX.jpg" height="120" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/IebxiIPPsqudh2HK8VR6-w?feat=embedwebsite" target='blank' &gt;&lt;img src="http://lh3.ggpht.com/_fWM7zHplfWI/TLvWfJrLyaI/AAAAAAAAAdk/OkcllJC_Gv4/s144/AplicativoAJAX.jpg" height="120" width="200" /&gt; &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Para descargar el ejemplo completo, descargarlo de: &lt;a href="http://www.megaupload.com/?d=P22DFU8E" target="_blank" &gt;AQUÌ.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-1009112524187908424?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/1009112524187908424/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=1009112524187908424' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1009112524187908424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1009112524187908424'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/10/manejo-de-ajax-en-un-proyecto-java.html' title='MANEJO DE &quot;AJAX&quot; (FORMA NATIVA)'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_fWM7zHplfWI/TLvWevZwlJI/AAAAAAAAAdg/LbPdFy_91So/s72-c/MenuPrincipalAJAX.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-4114474414156536098</id><published>2010-10-10T23:04:00.001-07:00</published><updated>2010-10-17T21:44:32.975-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Service'/><category scheme='http://www.blogger.com/atom/ns#' term='JAX-WS'/><title type='text'>MANEJO DE 'WEB SERVICE' CON 'JAX-WS'.</title><content type='html'>Que tal amigos después de un tiempo regreso para postear sobre este tema interesante relacionado a WebService. En esta oportunidad hablare sobre el Framework JAX-WS, este Framework en comparación de otros &lt;strong&gt;Frameworks&lt;/strong&gt;, te facilita la generación WebService vía un simple &lt;strong&gt;Servlet&lt;/strong&gt; y algo muy bueno es que permite a diferencia de otros &lt;strong&gt;Frameworks&lt;/strong&gt; para WS, el manejo de colecciones &lt;strong&gt; (ArrayList, List, Vector) &lt;/strong&gt; como INPUT &amp; OUTPUT de cada una de las operaciones que se declaren en dichos &lt;strong&gt;WS&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Los pasos para poder levantar un WS vía &lt;strong&gt;JAX-WS&lt;/strong&gt; son los siguientes:&lt;br /&gt; &lt;br /&gt;- Descargar las fuentes Core del JAX-WS pulsando: &lt;font color="#FFFF99"&gt; &lt;a href="http://www.megaupload.com/?d=E0JWOPBC" target="_blank" &gt;AQUÌ.&lt;/a&gt;.&lt;/font&gt;&lt;br /&gt; &lt;br /&gt;- Ubicar las fuentes descomprimirlas y ubicarlas en la ruta:  &lt;font color="#FFFF99"&gt; C:\JAVA\JAX-WS\JAXWS2.a.2. &lt;/font&gt;&lt;br /&gt;- Crea la variable de entorno:  &lt;font color="#FFFF99"&gt; JAXWS_HOME&lt;/font&gt;, que apunte a la ruta donde estaba las fuentes de JAX-WS descargadas:  &lt;font color="#FFFF99"&gt; C:\JAVA\JAX-WS\JAXWS2.1.2\jaxws-ri&lt;/font&gt;&lt;br /&gt;- Crea un Servlet similar a este:&lt;br /&gt;&lt;font color="#FFFF99"&gt;&lt;br /&gt;package org.java.ws.servlet;&lt;br /&gt;&lt;br /&gt;import static org.java.ws.util.Constantes.URL_WEBSERVICE;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;import javax.servlet.GenericServlet;&lt;br /&gt;import javax.servlet.ServletConfig;&lt;br /&gt;import javax.servlet.ServletException;&lt;br /&gt;import javax.servlet.ServletRequest;&lt;br /&gt;import javax.servlet.ServletResponse;&lt;br /&gt;import org.java.ws.servidor.UsuarioDAOImpl;&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;  * @author cguerra.&lt;br /&gt;  * @clase: InicialiadorJAXServlet.java  &lt;br /&gt;  * @descripción descripción de la clase.&lt;br /&gt;  * @author_web: http://frameworksjava2008.blogspot.com&lt;br /&gt;                 http://viviendoconjavaynomoririntentandolo.blogspot.com&lt;br /&gt;  * @author_email: nombre del email del autor.&lt;br /&gt;  * @author_company: nombre de la compañía del autor.&lt;br /&gt;  * @fecha_de_creación: dd-mm-yyyy.&lt;br /&gt;  * @fecha_de_ultima_actualización: dd-mm-yyyy.&lt;br /&gt;  * @versión 1.0&lt;br /&gt;  */&lt;br /&gt; public class InicialiadorJAXServlet extends GenericServlet implements Serializable{&lt;br /&gt; &lt;br /&gt; private static final long serialVersionUID = -2482469492687227649L;&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;  * Constructor. &lt;br /&gt;  */ &lt;br /&gt; public InicialiadorJAXServlet(){&lt;br /&gt; }&lt;br /&gt;    &lt;br /&gt; /**&lt;br /&gt;  * init  mètodo que se carga al iniciar el sistema y accede al método que manda a iniciar el Proceso. &lt;br /&gt;  * @throws ServletException &lt;br /&gt;  * &lt;br /&gt;  */ &lt;br /&gt;    public void init( ServletConfig configuracion ) throws ServletException{&lt;br /&gt;     System.out.println( "DENTRO DE 'init( ServletConfig configuracion )' " );&lt;br /&gt;     &lt;br /&gt;     super.init( configuracion );&lt;br /&gt;     &lt;br /&gt;     try{&lt;br /&gt;   this.IniciarWebService();&lt;br /&gt;  } &lt;br /&gt;     catch( Exception e ){&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;  }   &lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * IniciarWebService, Mètodo que manda a iniciar el WebService. &lt;br /&gt;  */ &lt;br /&gt; public void IniciarWebService(){&lt;br /&gt;     System.out.println( "DENTRO DE 'IniciarWebService()' " );&lt;br /&gt;     &lt;br /&gt;  try{    &lt;br /&gt;   String webService = URL_WEBSERVICE;&lt;br /&gt;   &lt;br /&gt;   UsuarioDAOImpl daoImpl = new UsuarioDAOImpl();&lt;br /&gt;   daoImpl.inicializaWebService( webService );&lt;br /&gt;  } &lt;br /&gt;  catch( Exception e ){&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;  * service &lt;br /&gt;  * @param request&lt;br /&gt;  * @param response&lt;br /&gt;  */ &lt;br /&gt; public void service( ServletRequest request, ServletResponse response ){&lt;br /&gt;  System.out.println( "DENTRO DE 'service( ServletRequest request, ServletResponse response )' " );&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt; } &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;- Crear la Interfase y su clase que Implemente el &lt;strong&gt;WS&lt;/strong&gt;. Además, para la generación en si del WS se puede realizar de 2 formas a continuación detalladas:&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99"&gt;&lt;br /&gt; &lt;strong&gt; GENERAR WEBSERVICE DESDE UNA CLASE 'JAVA' &lt;br /&gt;  --------------------------------------------------------------------------  &lt;/strong&gt;&lt;br /&gt; &lt;br /&gt;  I.-  UBICARSE DESDE LA RUTA 'SRC' DEL PROYECTO  EN DOS:&lt;br /&gt;      &lt;br /&gt;       Ejecutar en Orden: &lt;br /&gt;       &lt;br /&gt;       (FORMA MANUAL)     &lt;br /&gt;       A.- javac org/java/ws/bean/Usuario.java&lt;br /&gt;       B.- javac org/java/ws/servidor/UsuarioDAO.java&lt;br /&gt;       C.- javac org/java/ws/servidor/UsuarioDAOImpl.java&lt;br /&gt;       &lt;br /&gt;       (FORMA DINAMICA)&lt;br /&gt;    set RAIZ_SRC= .&lt;br /&gt;    set JAVA_SRC=%RAIZ_SRC%\org\java\ws\bean\*.java&lt;br /&gt;       set JAVA_SRC=%JAVA_SRC%%RAIZ_SRC%\org\java\ws\servidor\*.java&lt;br /&gt;    set JAVA_SRC=%JAVA_SRC%%RAIZ_SRC%\org\java\ws\util\*.java&lt;br /&gt;    javac %JAVA_SRC%&lt;br /&gt;       &lt;br /&gt;              &lt;br /&gt;       D.- %JAXWS_HOME%/bin/wsgen -cp . org.java.ws.servidor.UsuarioDAOImpl -s . -verbose -r ..\WebContent\wsdl -wsdl &lt;br /&gt;       E.- Ejecutar esta linea de Comandos o desplegar desde el Servidor: &lt;br /&gt;           java org.java.ws.servidor.UsuarioDAOImpl&lt;br /&gt;       F.- Actualizar el nombre del 'WebService' en el WSDL, ya que luego de generarce no aparece.  &lt;br /&gt;            &lt;br /&gt; &lt;strong&gt;&lt;br /&gt;  GENERAR WEBSERVICE DESDE UN 'WSDL' &lt;br /&gt;  --------------------------------------------------------------  &lt;/strong&gt;&lt;br /&gt; &lt;br /&gt;  I.-  UBICARSE DESDE LA RUTA 'RAIZ' DEL PROYECTO  EN DOS:&lt;br /&gt;       - FORMA#1:   wsimport WebContent\WEB-INF\wsdl\music.wsdl -s src -verbose &lt;br /&gt;       - FORMA#2:   %JAXWS_HOME%/bin/wsimport WebContent\WEB-INF\wsdl\music.wsdl -s src -verbose &lt;br /&gt;     &lt;br /&gt;  II.- UBICARSE DESDE LA RUTA 'SRC' DEL PROYECTO  EN DOS:&lt;br /&gt;       - FORMA#1:   wsimport ..\WebContent\WEB-INF\wsdl\music.wsdl -s . -verbose  &lt;br /&gt;       - FORMA#2:   %JAXWS_HOME%/bin/wsimport ..\WebContent\WEB-INF\wsdl\WEB-INF\music.wsdl -s . -verbose&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Luego de esto se habrá generado el &lt;strong&gt;WS&lt;/strong&gt; y se apreciaría un mensaje similar a este, al ingresar una &lt;strong&gt;URL&lt;/strong&gt; similar a esta, que significa que el WS esta activo:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;http://localhost:8099/ServidorWS_JAXWS_Generado/UsuarioDAOImpl&lt;/strong&gt;&lt;br /&gt;&lt;font color="#FFFF99"&gt;&lt;strong&gt;Web Services&lt;br /&gt;No JAX-WS context information available. &lt;/strong&gt; &lt;/font&gt;&lt;br /&gt;Para el consumo del dicho &lt;strong&gt;WS&lt;/strong&gt; ya desplegado, nos podemos apoyar también con &lt;strong&gt;JAX-WS&lt;/strong&gt;, para ello realizamos lo siguiente: &lt;br /&gt;&lt;font color="#FFFF99"&gt;&lt;strong&gt;&lt;br /&gt;  GENERAR CLIENTE 'WEBSERVICE' &lt;br /&gt;  --------------------------------------------------&lt;/strong&gt;  &lt;br /&gt;  &lt;br /&gt;  UBICARSE DESDE LA RUTA 'SRC' DEL PROYECTO EN DOS: &lt;br /&gt;  &lt;br /&gt;  I.-  GENERACION DE CLASES:&lt;br /&gt;   &lt;br /&gt;       A.- DESDE 'URL':&lt;br /&gt;           %JAXWS_HOME%/bin/wsimport http://localhost:8090/servidorJaxWs/UsuarioDAOImpl?wsdl -s . -verbose&lt;br /&gt;        &lt;br /&gt;       B.- DESDE 'FICHERO':&lt;br /&gt;           %JAXWS_HOME%/bin/wsimport ..\WebContent\wsdl\UsuarioDAOImplService.wsdl -s . -verbose  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  II.- COMPILACION &amp; EJECUCION DE CLIENTE 'WS':&lt;br /&gt;            &lt;br /&gt;       A.- Ejecución desde Consola 'DOS':&lt;br /&gt;           - javac org/java/ws/test/ClienteWS.java &lt;br /&gt;           - java  org/java/ws/test/ClienteWS PARAMETRO&lt;br /&gt;      &lt;br /&gt;       B.- Ejecución desde Clase JAVA:&lt;br /&gt;           - Ejecutar desde 'Java Aplication'.&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Al ejecutar  la clase:  &lt;strong&gt;ClienteWS&lt;/strong&gt; se probara dicho &lt;strong&gt;WS&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Para descargar el ejemplo completo, descargarlo de: &lt;a href="http://www.megaupload.com/?d=WZRXC1HM" target="_blank" &gt;AQUÌ.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-4114474414156536098?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/4114474414156536098/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=4114474414156536098' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/4114474414156536098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/4114474414156536098'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/10/manejo-de-web-service-con-jax-ws.html' title='MANEJO DE &apos;WEB SERVICE&apos; CON &apos;JAX-WS&apos;.'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-2507185136469713519</id><published>2010-10-10T22:48:00.001-07:00</published><updated>2010-12-19T11:43:44.469-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><title type='text'>TUTORIAL MAVEN</title><content type='html'>Este completo tutorial explica todo lo mas resaltante sobre Maven, en esta oportunidad la versión 2.0.9.&lt;br /&gt;&lt;br /&gt;Esta muy buena herramienta nos puede ayudar en el proceso de creación de nuestro proyecto Java.  ¿Cómo lo logra?, mediante el uso de los arquetipos de Maven, que son estructuras de proyecto predefinidas y reconocidas en un archivo xml (Pom.xml), que se generan mediante los plugins de Maven (Cada plugin de arquetipo relacionado a un Jars necesario). Además, los principales proyectos Open Source en Java, están utilizando cada día más el uso de Maven para su desarrollo, por lo que cada vez es más frecuente encontrar plugins de arquetipos para el desarrollo de aplicaciones. &lt;br /&gt;&lt;br /&gt;Maven, para ser compilado necesita de requerimiento el Internet ya que mediante unos comandos en consola (Posteriormente explicaremos), Maven lee los plugins de arquetipos escritos en el archivo Pom.xml y descarga las librerías necesarias en un repositorio predefinido  para el almacenamiento de las librerías respectivas.&lt;br /&gt;&lt;br /&gt;También, Maven permite generar y versionar un Proyecto dentro de un War, ordenar y comprimir las librerías (Jars) utilizadas dentro de un .Zip, generar un completo JavaDoc de la aplicación, etc. Todo mediante códigos en consola.&lt;br /&gt;&lt;br /&gt;El tutorial expuesto acontinuacion toca los temas:&lt;br /&gt;&lt;br /&gt; I.-    REQUISITOS.&lt;br /&gt; II.-   CARACTERISTICAS.&lt;br /&gt; III.-  INSTALACION DE MAVEN.&lt;br /&gt; IV.-   CREACION DE UN PROYECTO JAVA CON MAVEN.&lt;br /&gt; V.-    PROCESOS QUE SE PUEDEN HACER CON MAVEN.&lt;br /&gt; VI.-   MANEJO DEL POM.XML.&lt;br /&gt; VII.-  EXCLUSIONES EN LAS DEPENDENCIES.&lt;br /&gt; VIII.- PROYECTO MULTIMÓDULO.&lt;br /&gt; VIII.- CICLO DE VIDA.&lt;br /&gt; IX.-   INSTALACION DEL PLUGIN DE MAVEN PARA ECLIPSE.&lt;br /&gt; X.-    REPOSITORIOS IMPORTANTES DE MAVEN.&lt;br /&gt; XI.-   DEFINICIONES RÀPIDAS E IMPORTANTES DE MAVEN.&lt;br /&gt; XII.-  HERRAMINETAS REALCIONADAS CON MAVEN.&lt;br /&gt; XIII.- ENLACES RELACIONADOS DE MAVEN.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;Font color="#FFFF99"&gt;Para descargar el Tutorial de Maven completo pulsar &lt;/Font&gt; &lt;a href="http://www.megaupload.com/?d=NA49CEAA" target="blank" &gt; Aquì &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&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/5458598926546072955-2507185136469713519?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/2507185136469713519/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=2507185136469713519' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/2507185136469713519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/2507185136469713519'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/10/tutorial-maven.html' title='TUTORIAL MAVEN'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-6831769374023961153</id><published>2010-10-10T17:43:00.000-07:00</published><updated>2010-10-10T18:47:23.599-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JAVAMAIL'/><title type='text'>MANEJO API JAVAMAIL</title><content type='html'>Que tal amigos, luego de un largo receso regreso con muchas ganas para postear algo que en estos días es muy útil en el desarrollo de nuestras aplicaciones (Según se requiera), es el manejo de la API que Java maneja para el envío de emails &lt;strong&gt;&lt;br /&gt; (JAVAMAIL) &lt;/strong&gt;, esta API permite fácilmente enviar emails a cualquier servidor de correos que se cuente con el SMTP (Protocolo).&lt;br /&gt;&lt;br /&gt;La aplicación preparada consta de un aplicativo tipo WEB, con 3 paquetes con 3 clases (Una clase por paquete), la lógica es mas o menos de esta manera, se tiene un DTO (Data Transfer Object) especial para el seteo de los diferentes parámetros que se manejara:  &lt;strong&gt; (cuentaEmailRemitente, cuentaEmailDestinatario, servidor, servidor, etc) &lt;/strong&gt;. Es importante contar con los &lt;strong&gt;SMTP&lt;/strong&gt; de los diferentes servidores de correos a los cuales uno requiero conectar &lt;strong&gt; (El demo preparado soporte los siguientes: Gmail, Hormail, Yahoo) &lt;/strong&gt;. Luego de seteado el objeto este es enviado a una clase ya preparada llamada: UtilEmail, esta clase ya hace todas las validaciones respectivas y se encarga de enviar el email, de la forma más rápida.&lt;br /&gt;&lt;br /&gt;Es requerido la autenticación para cada servidor de emails al cual se desee conectar. El demo también soporta el multienvio de emails (Uno puedo mandar 1 o N emails en un solo envío), pero tener cuidado con esto para que después no registren en el &lt;strong&gt;BLACK LIST (http://mxtoolbox.com/blacklists.aspx) &lt;/strong&gt;. Finalmente, algo que si me gusto es que el demo permite, simultáneamente el manejo de texto, Html y adjunto en un mismo email. El adjunto cualquier tipo de archivo ubicado necesariamente en el SourceFolder: recursos.&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/IXoRTpXpeNVf1OOdY-3oQQ?feat=embedwebsite"&gt; &lt;img src="http://lh3.ggpht.com/_fWM7zHplfWI/TLJnqcmXRmI/AAAAAAAAAdI/XA0coBglvKk/s144/JavaMail.jpg" height="84" width="144" /&gt; &lt;/a&gt;   &lt;br /&gt;&lt;/center&gt;&lt;br /&gt;Para descargar el ejemplo completo descargarlo de: &lt;a href="http://www.megaupload.com/?d=P8X83795" target="_blank" &gt;AQUÌ.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-6831769374023961153?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/6831769374023961153/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=6831769374023961153' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6831769374023961153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6831769374023961153'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/10/manejo-api-javamail.html' title='MANEJO API JAVAMAIL'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_fWM7zHplfWI/TLJnqcmXRmI/AAAAAAAAAdI/XA0coBglvKk/s72-c/JavaMail.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-5747249977469188180</id><published>2010-08-28T22:18:00.000-07:00</published><updated>2010-08-28T23:06:10.304-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jdbc'/><category scheme='http://www.blogger.com/atom/ns#' term='MAVEN'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>INTEGRACION: HIBERNATE + MAVEN + JDBC</title><content type='html'>Que tal compañeros regreso a postear luego de algún tiempo y en esta oportunidad hablare y mostrare un ejemplo de como manejar el &lt;strong&gt; Framework Hibernate &lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;Si hablamos un poco de este Framework es uno de los Frameworks orientados a persistencia mas utilizados por las diferentes ventajas que nos brinda.&lt;br /&gt;&lt;br /&gt;Facilidad para el manejo transaccional de distintas bases de datos, ya que este Framework es de tipo &lt;strong&gt; ORM (Object Relational Mappin) &lt;/strong&gt;, esto hace que el Framework realice un el mapeo completo de la base de datos relacional utilizada, en archivos XMLs (Uno por cada Bean creado) los mapeos y clases generadas expresan herencia y polimorfismo y creando una base de datos orientada a objetos. Esto  hace que al momento de la creación de los Querys  no nos preocupemos por la DB utilizada ya que dicho Query servirá para cualquier Base de datos ya que el acceso a los datos los puedes manejar de distintas formas utilizando &lt;font color="#FFFF99" &gt; ESQL y CRITERIA. &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;El ejemplo posteados esta principalmente orientado a mostrar el manejo del Framework Hibernate manejando un patrón DAO para facilitar el acceso a persistencia. Adicionalmente, el ejemplo realiza las mismas operaciones de persistencia realizadas con Hibernate con JDBC, a modo que se vea un comparativo del manejo de persistencia. &lt;br /&gt;&lt;br /&gt;Este proyecto demo esta orientado a Web y fue desarrollado en la IDE JBOSS Developer Studio v2.0 que es en si un ECLIPSE con varios PLUGINs adicionales y la ejecución del proyecto en si esta controlado con Maven. (Para los que no conocen Maven entrar aquí:      ) y soportado en la BD SAMPLE que viene cargada dentro de DERBY. &lt;font color="#FFFF99" &gt; (Una versión de Derby viene ya integrado con en al descarga de la IDE NetBeans) &lt;/font&gt;, facilitando la inicialización de la BD desde el mismo NetBeans.&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt; &lt;strong&gt; EJECUCION: &lt;/strong&gt; &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;La ejecución de los ejemplos preparados están realizados en JUnit-Test (Click derecho + Run ass + JUnit Test) y son los siguientes:&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;  - TestConexionJdbc&lt;br /&gt;  - TestObjetoClienteJdbc&lt;br /&gt;  - TestListaObjetosClienteJdbc&lt;br /&gt;  - TestObjetoClienteHibernate&lt;br /&gt;  - TestListaObjetosClienteHibernate&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Finalmente, en la clase &lt;font color="#FFFF99" &gt; &lt;strong&gt; pe.com.crga.framework.java.impl.ClienteDaoHibernate &lt;/strong&gt; &lt;/font&gt; se muestra 3 formas distintas del manejo de Hibernate para las operaciones manejadas &lt;strong&gt; (Solo se descomenta la deseada) &lt;/strong&gt;.   &lt;br /&gt;&lt;br /&gt;Para descargar el ejemplo completo descargarlo de: &lt;a href="http://www.megaupload.com/?d=5ON6T0F1" target="_blank" &gt;AQUÌ.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-5747249977469188180?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/5747249977469188180/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=5747249977469188180' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/5747249977469188180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/5747249977469188180'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/08/integracion-hibernate-maven-jdbc.html' title='INTEGRACION: HIBERNATE + MAVEN + JDBC'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-6364378156095885236</id><published>2010-05-08T16:58:00.000-07:00</published><updated>2010-05-08T17:17:14.740-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CALIDAD DE SOFTWARE'/><title type='text'>DEFINICIONES IMPORTANTES DE CALIDAD DE SOFTWARE</title><content type='html'>Es muy importante que se conosca sobre algunas definiciones de &lt;strong&gt;CALIDAD DE SOFTWARE&lt;/strong&gt; que es muy probable que escuchemos de forma muy seguida. Aqui las enumero:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; &lt;font color="#FFFF99" &gt;I.-   APLICACIONES DISTRIBUIDAS:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Las aplicaciones distribuidas son aplicaciones que están diseñadas como aplicaciones de n niveles. La arquitectura de estas aplicaciones distribuidas favorece el diseño de aplicaciones escalables compartiendo recursos, como bases de datos y componentes empresariales&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;&lt;font color="#FFFF99" &gt;2.-  ESCALABILIDAD:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;La escalabilidad de una aplicación requiere una pertenencia equilibrada entre dos dominios distintos, software y hardware.       &lt;br /&gt;Para que un sistema sea escalable tiene que cumplir tres condiciones para ajustarse a los cambios:&lt;br /&gt;&lt;strong&gt;&lt;br /&gt; - Tiene que poder adaptarse a un incremento en el número de usuarios. &lt;br /&gt; - Tiene que poder adaptarse a un incremento en el tamaño de los datos que maneja. &lt;br /&gt; - Tiene que ser mantenible. &lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Cuanto más fácil sea cumplir estas tres condiciones, más escalable será el sistema. La escalabilidad no es lo mismo que el rendimiento del sistema (performance). Lescalabilidad depende más del diseño de la aplicación que de las tecnologías usadas para implementarla.&lt;br /&gt;&lt;br /&gt;La escalabilidad puede avanzar grandes pasos que aumenten la escalabilidad de un dominio sólo para sabotearlos cometiendo errores en el otro. Por ejemplo, la creación de un grupo de servidores Web con equilibrio de carga no beneficiará una aplicación Web que se ha diseñado para ejecutarse un solo equipo. De igual modo, el diseño de una aplicación altamente escalable y su implementación en equipos conectados a una red con poco ancho de bada no controlará bien las cargas pesadas cuando se sature el tráfico en la red.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt; 2.1.- ESCALAR EN VERTICAL:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;El escalado en vertical es el término que más se utiliza para lograr escalabilidad utilizando software mejor, más rápido y más caro. El escalado incluye agregar más memoria, más procesadores o procesadores más rápidos o, simplemente, migrar la aplicación a un único equipo más potente. Normalmente, este método permite un aumento en la capacidad sin requerir cambios en el código fuente. Desde el punto de vista administrativo, las cosas permanecen igual puesto que sigue habiendo un único equipo que administrar.&lt;br /&gt;&lt;br /&gt;Actualizar un componente de hardware en un equipo sólo mueve el limite de capacidad de procesamiento de un lado a otro. Por ejemplo, una máquina que está al 100 % de uso de la CPU podría mejorar su capacidad agregando otra CPU. Sin embargo, la limitación puede pasar de la CPU a la memoria del sistema. Agregar CPU no aporta rendimiento en un modelo lineal. En su lugar, el rendimiento va disminuyendo cada vez que se agrega un procesador adicional. Para equipos con configuraciones de varios procesadores simétricos (SMP), cada procesador adicional produce una sobrecarga del sistema. Por tanto, un equipo con cuatro procesadores no obtendrá una mejora del 400% en capacidad sobre una versión con un único procesador. Una vez que haya actualizado todos los componentes de hardware al máximo de su capacidad, llegará el momento en que alcance el límite real de la capacidad de procesamiento del equipo. Llegado ese punto, el siguiente paso es escalar en vertical para moverse a otro equipo.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://i.msdn.microsoft.com/Aa292203.vxscalabilityscaleup(es-es,VS.71).gif" target='blank' &gt;&lt;img src="http://i.msdn.microsoft.com/Aa292203.vxscalabilityscaleup(es-es,VS.71).gif" width='300' height='200' /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;Escalar en vertical conlleva también otros posibles problemas. El uso de un único equipo en el que basar una aplicación crea un único punto de error, lo que disminuye enormemente la tolerancia de errores del sistema. Si bien algunos métodos, como varias fuentes de alimentación, pueden implementar redundancia en un sistema de un único equipo, pueden resultar costosas.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt;2.2.-  ESCALAR EN  HORIZONTAL:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Una alternativa a escalar en vertical es escalar en horizontal. Escalar en horizontal aprovecha el ahorro que supone utilizar el hardware de PC activo para distribuir la carga de procesamiento en más de un servidor. Aunque el escalado en horizontal se logra utilizando muchos equipos, la colección funciona esencialmente como un único equipo. Al dedicar varios equipos a una tarea común, mejora la tolerancia de errores de la aplicación. Por supuesto, desde el punto de vista del administrador, escalar en horizontal presenta un desafío mayor de administración debido al mayor número de equipos.&lt;br /&gt;&lt;br /&gt;Los desarrolladores y administradores utilizan una gran variedad de técnicas de equilibrio de carga para escalar en horizontal con la plataforma Windows. El equilibrio de carga permite escalar un sitio en horizontal a través de un clúster de servidores, facilitando la adición de capacidad agregando más servidores duplicados. También proporciona redundancia, concediendo al sitio capacidad de recuperación de conmutación por error, de manera que permanece disponible para los usuarios incluso si uno o más servidores fallan (o si es preciso retirarlos del servicio para realizar labores de mantenimiento). El escalado en horizontal proporciona un método de escalabilidad que no se ve mermado por limitaciones de hardware. Cada servidor adicional proporciona una mejora casi lineal de la escalabilidad.&lt;br /&gt;La clave para escalar horizontalmente una aplicación con éxito es la transparencia de ubicación. Si alguna parte del código de la aplicación depende de saber qué servidor está ejecutando el código, no se ha logrado la transparencia de ubicación y será difícil el escalado en horizontal. Esta situación se denomina afinidad de ubicación. La afinidad de ubicación requiere cambios de código para escalar una aplicación en horizontal de un servidor a varios, lo que, en pocas ocasiones, constituye una opción económica. Si diseña la aplicación con transparencia de ubicación en mente, resulta más fácil escalarla en horizontal.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://i.msdn.microsoft.com/Aa292203.vxscalabilityscaleout(es-es,VS.71).gif" target='blank' &gt;&lt;img src="http://i.msdn.microsoft.com/Aa292203.vxscalabilityscaleout(es-es,VS.71).gif" width='300' height='240' /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt; 3.-  ROBUSTEZ: &lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Es la capacidad de los productos software de reaccionar apropiadamente ante condiciones excepcionales.&lt;br /&gt;En implementación se cuenta con el  mecanismo de excepciones  el cual garantiza el  correcto flujo de ejecución del código. (Programación  por contrato)&lt;br /&gt;Cuando se culmina un software de alta calidad, se presentarán casos o aspectos que no contemplarás y la robustez asegura que no se causarán eventos de índole grave o catastrófica. En detalles técnicos si se presenta errores en tu software, la robustez hará un despliegue de mensajes de error apropiados, en donde se pueda terminar la aplicación de manera limpia y segura para los datos.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt;4.-  PORTABILIDAD: &lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Es la facilidad con que un sistema software puede ser migrado entre diferentes   plataformas hardware o software. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt;5.-  INTEGRIDAD:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Es la característica de un sistema de ser capaz de proteger sus diferentes componentes contra los procesos o elementos que no tengan derecho de acceso a los mismos. La integridad es un factor muy importante en  sistemas contables ,  administrativos y gerenciales ya que  de ellos depende el capital de la empresa&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt;6.-  COMPATIBILIDAD:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Es la facilidad de combinar diferentes elementos software con el fin de ejecutar una labor en conjunto. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt;7.-  ALTA DISPONIBILIDAD:&lt;/font&gt; &lt;/strong&gt; &lt;br /&gt;Se refiere a la habilidad de la comunidad de  para acceder al sistema, consiste en una serie de medidas tendientes a garantizar la disponibilidad del servicio, es decir, asegurar que el servicio funcione durante las veinticuatro horas. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt;8.-  FRONT-END:&lt;/font&gt;&lt;/strong&gt;  &lt;br /&gt;Es la parte del  que interactúa con el o los usuarios. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt;9.-  BACH-END: &lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Es la parte que procesa la entrada desde el front-end hasta back-end hace referencia al estado final de un proceso. Contrasta con front-end, que se refiere al estado inicial de un proceso&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt;10.- FAT CLIENT o (Thin Server):&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Es el aprovechamiento de datos, donde el cliente ha sido dotado de "inteligencia" y realiza muchos procesamientos locales.&lt;br /&gt;En este esquema de arquitectura el grueso de la aplicación es ejecutada en el cliente, es decir, el nivel de presentación y el nivel de aplicación corren en un único proceso cliente, y el servidor es relegado a realizar las funciones que provee un administrador de base de datos. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt;11.- THIN CLIENT (Fat Server):&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Este es el caso opuesto al anterior, el proceso cliente es restringido a la presentación de la interfaz de usuario, mientras que el grueso de la aplicación corre por el lado del servidor de aplicación. Aquí se posee poco procesamiento local, son más débiles y por supuesto, fáciles de manejar o administrar. La cantidad de datos requeridos por un cliente fat es constante mientras que un cliente más delgado típicamente requerirá de un servidor mayor con mayor capacidad de procesamiento y administración.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-6364378156095885236?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/6364378156095885236/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=6364378156095885236' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6364378156095885236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6364378156095885236'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/05/definiciones-importantes-de-calidad-de.html' title='DEFINICIONES IMPORTANTES DE CALIDAD DE SOFTWARE'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-4115402902675889876</id><published>2010-05-05T22:22:00.000-07:00</published><updated>2011-11-25T20:57:27.911-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MQ'/><category scheme='http://www.blogger.com/atom/ns#' term='WebSphere'/><title type='text'>MANEJO 'IBM WebSphere MQ' EN JAVA</title><content type='html'>Que tal compañeros el dia de hoy hablaré sobre un tema relacionado a la integración de aplicaciones empresariales. WebSphere MQ (anteriormente MQSeries) que es un modo de transmisión de data via colas MQ, para la integración de aplicaciones empresariales. El envio de datos a traves de MQ muy popular ya que es más rápido que si se trabajara vía el protocolo SOAP o via ficheros. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;I.- Características de WebSphere MQ:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;*  Admite cualquier tipo de conectividad heterogénea, desde equipos de escritorio hasta macrocomputadoras (admite una gran variedad de plataformas distintas).&lt;br /&gt;* Dispone de una extensa familia de interfaces de programación de aplicaciones (API) diseñados con el objeto de facilitar la creación de código para tareas de mensajería.&lt;br /&gt;* Garantiza la entrega sin duplicaciones de los mensajes importantes.&lt;br /&gt;* Permite un mapeo de objetos via ficheros .cpy, xsd y direntes transformaciones de mensajes (Formatos).&lt;br /&gt;* Proporciona conectividad de aplicaciones. Puede utilizarse de forma autónoma o con otros miembros de la familia para ofrecer una solución de integraciones de negocio global.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;II.- Sistemas Operativos y Plataformas de Hardware Apropiadas.&lt;/strong&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;    * AIX&lt;br /&gt;    * HP OpenVMS (Alpha)&lt;br /&gt;    * HP-UX&lt;br /&gt;    * iSeries i5/OS V5R3&lt;br /&gt;    * iSeries OS/400 V5R2&lt;br /&gt;    * Linux&lt;br /&gt;    * Linux for iSeries&lt;br /&gt;    * Linux for pSeries POWER&lt;br /&gt;    * Sun Solaris&lt;br /&gt;    * Windows 2000&lt;br /&gt;    * Windows NT&lt;br /&gt;    * Windows XP&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;strong&gt;III.- Ejemplo Aplicativo:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Ahora si mostraré una forma de trabajar con de WebSphere MQ en JAVA. Para ello se tiene que tener en cuenta y configurar previamente Las colas MQ que serviran para la transmisión. Estos son los datos que se tendra que configura antes que nada:&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt; - QManager &lt;br /&gt; - colaIN    &lt;br /&gt; - colaOUT  &lt;br /&gt; - canal     &lt;br /&gt; - servidor &lt;br /&gt; - puerto    &lt;br /&gt; - id      &lt;br /&gt; - password &lt;br /&gt; - messageId &lt;br /&gt;&lt;/font&gt;&lt;br /&gt; Luego ya configurado y definido se registrará en un archivo .properties que será nuestro archivo de configuración del ejemplo a mostrar.&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt; #####################################################################&lt;br /&gt; ################ PROPIEDADES DE PARA ACCESO DE DATOS ################&lt;br /&gt; #####################################################################&lt;br /&gt;&lt;br /&gt; #### EL DELIMITADOR DE ACCESO PUEDE SER CON LA SIMBOLOGIA =&gt; ':', '=', 'BLANCO'   ####  &lt;br /&gt; &lt;br /&gt; ##--------- CONFIGURACION: 'LOCAL MESSAGE BROKER' ---------##&lt;br /&gt; propiedad.MQ.QManager   = WBRK61_DEFAULT_QUEUE_MANAGER&lt;br /&gt; propiedad.MQ.colaIN     = MQ.A&lt;br /&gt; propiedad.MQ.colaOUT    = MQ.B&lt;br /&gt; propiedad.MQ.canal      = SYSTEM.BKR.CONFIG&lt;br /&gt; propiedad.MQ.servidor   = localhost&lt;br /&gt; propiedad.MQ.puerto     = 2414&lt;br /&gt; propiedad.MQ.id         = MQSIUSER&lt;br /&gt; propiedad.MQ.password   = MQSIPASS&lt;br /&gt; propiedad.MQ.messageId  = JAVAMAN00000000000000000&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Se debe analizar como se van a manejar las colas MQ, ya que si son utilizados un solo 2 aplicaciones (La aplicación que hace PUT y la que hace GET a la trama) y si van a haber muchas aplicaciones que dejen en una misma cola diferentes Tramas MQ. Para el primer caso bastaría con el manejo de la ultima trama que se deja en cola ya que un aplicatibo lo dejara y otro lo leera en ese mismo instante, pero si se está en un escenario como el 2do se necesita el manejo de messageId y correlationId para poder manejar la identificación y deferenciación de cada Trama qye se deposita en una misma cola MQ.&lt;br /&gt;&lt;br /&gt;Los ejemplos preparados soportan todo esto anteriormente mencionado.   &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="red" &gt;Clase 'PruebaEnviarMQ': &lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;package org.java.mq;&lt;br /&gt;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.util.Properties;&lt;br /&gt;import com.ibm.mq.MQC;&lt;br /&gt;import com.ibm.mq.MQEnvironment;&lt;br /&gt;import com.ibm.mq.MQException;&lt;br /&gt;import com.ibm.mq.MQMessage;&lt;br /&gt;import com.ibm.mq.MQPutMessageOptions;&lt;br /&gt;import com.ibm.mq.MQQueue;&lt;br /&gt;import com.ibm.mq.MQQueueManager;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * @author: cguerraa.&lt;br /&gt; * @clase: PruebaEnviaMQ.java  &lt;br /&gt; * @descripción: descripción de la clase.&lt;br /&gt; * @author_web: http://frameworksjava2008.blogspot.com - http://viviendoconjavaynomoririntentandolo.blogspot.com &lt;br /&gt; * @author_email: cesarricardo_guerra19@hotmail.com.&lt;br /&gt; * @author_company: nombre de la compañía del autor.&lt;br /&gt; * @fecha_de_creación: dd-mm-yyyy.&lt;br /&gt; * @fecha_de_ultima_actualización: dd-mm-yyyy.&lt;br /&gt; * @versión: 1.0&lt;br /&gt; */&lt;br /&gt;public class PruebaEnviarMQ{&lt;br /&gt;   &lt;br /&gt; private static final String ARCHIVO_CONFIGURACION = "ConfiguracionMQ.properties";&lt;br /&gt; private static final String SOURCE_FORDER         = "src/";&lt;br /&gt; &lt;br /&gt; private static String TRAMA_INPUT                 = "MENSAJE GUARDADO DE FORMA DIRECTA VIA APLICATIVO JAVA - MQ ...!!!...ENVIO: OPCION CLASE JAVA.";&lt;br /&gt; &lt;br /&gt; private Properties      objProperties   = null;&lt;br /&gt; private MQQueueManager  objQueueManager = null;            &lt;br /&gt; private ManejoErroresMQ manejoErroresMQ = null;            &lt;br /&gt; private ObjetoMQ        objetoMQ        = null;&lt;br /&gt; &lt;br /&gt; {&lt;br /&gt;     this.objProperties   = this.getObjetoProperties(); &lt;br /&gt;     this.manejoErroresMQ = new ManejoErroresMQ();  &lt;br /&gt;     this.objetoMQ        = new ObjetoMQ(); &lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt; //Constructores ...&lt;br /&gt; public PruebaEnviarMQ(){   &lt;br /&gt; }&lt;br /&gt;  &lt;br /&gt; public PruebaEnviarMQ( String tramaParam ){&lt;br /&gt;  super();&lt;br /&gt;  TRAMA_INPUT = tramaParam;&lt;br /&gt; } &lt;br /&gt; &lt;br /&gt;    public PruebaEnviarMQ( String nombreQManager, String colaInParam, String colaOutParam,&lt;br /&gt;                     String canalParam, String servidorParam, String puertoParam, &lt;br /&gt;                     String idParam, String passwordParam ){&lt;br /&gt;  super();&lt;br /&gt;  this.objetoMQ.setNombreQManager( nombreQManager );&lt;br /&gt;  this.objetoMQ.setColaInParam(    colaInParam    );&lt;br /&gt;  this.objetoMQ.setColaOutParam(   colaOutParam   );&lt;br /&gt;  this.objetoMQ.setCanalParam(     canalParam     );&lt;br /&gt;  this.objetoMQ.setServidorParam(  servidorParam  );&lt;br /&gt;  this.objetoMQ.setPuertoParam(    puertoParam    );&lt;br /&gt;  this.objetoMQ.setIdParam(        idParam        );&lt;br /&gt;  this.objetoMQ.setPasswordParam(  passwordParam  );&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;    /**&lt;br /&gt;     * main&lt;br /&gt;     * @param argumentos&lt;br /&gt;     */&lt;br /&gt; public static void main( String[] argumentos ){&lt;br /&gt;  PruebaEnviarMQ conexionMQ = new PruebaEnviarMQ();&lt;br /&gt;  conexionMQ.enviarMensajeMQ();&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * cargarConfiguracionMQ&lt;br /&gt;  */&lt;br /&gt; public void cargarConfiguracionMQ(){&lt;br /&gt;  &lt;br /&gt;//Inicializando Paramentos ...&lt;br /&gt;this.objetoMQ.setMensajeTramaMQ(  TRAMA_INPUT ); &lt;br /&gt;this.objetoMQ.setTiempoInicioMQ(  Long.toString( ( new java.util.Date() ).getTime() ) );&lt;br /&gt;this.objetoMQ.setCorrelationIdMQ( this.objetoMQ.getTiempoInicioMQ() + new java.util.Date().getTime() );      &lt;br /&gt;this.objetoMQ.setNombreQManager(  this.objProperties.getProperty( "propiedad.MQ.QManager"  ).trim() ); &lt;br /&gt;this.objetoMQ.setColaInParam(     this.objProperties.getProperty( "propiedad.MQ.colaIN"    ).trim() );  &lt;br /&gt;this.objetoMQ.setColaOutParam(    this.objProperties.getProperty( "propiedad.MQ.colaOUT"   ).trim() ); &lt;br /&gt;this.objetoMQ.setCanalParam(      this.objProperties.getProperty( "propiedad.MQ.canal"     ).trim() );  &lt;br /&gt;this.objetoMQ.setServidorParam(   this.objProperties.getProperty( "propiedad.MQ.servidor"  ).trim() );  &lt;br /&gt;this.objetoMQ.setPuertoParam(     this.objProperties.getProperty( "propiedad.MQ.puerto"    ).trim() );  &lt;br /&gt;this.objetoMQ.setIdParam(         this.objProperties.getProperty( "propiedad.MQ.id"        ).trim() );  &lt;br /&gt;this.objetoMQ.setPasswordParam(   this.objProperties.getProperty( "propiedad.MQ.password"  ).trim() ); &lt;br /&gt;this.objetoMQ.setMessageIdParam(  this.objProperties.getProperty( "propiedad.MQ.messageId" ).trim().getBytes() );  &lt;br /&gt;      &lt;br /&gt;      //Imprimiendo Datos MQ.&lt;br /&gt;      this.imprimeDatosMQ();&lt;br /&gt;  &lt;br /&gt;   MQEnvironment.channel  = this.objetoMQ.getCanalParam();&lt;br /&gt;   MQEnvironment.hostname = this.objetoMQ.getServidorParam();&lt;br /&gt;   MQEnvironment.port     = Integer.parseInt( this.objetoMQ.getPuertoParam() );&lt;br /&gt;   MQEnvironment.userID   = this.objetoMQ.getIdParam();        //Normalmente el mismo 'ID' del dominio.&lt;br /&gt;   MQEnvironment.password = this.objetoMQ.getPasswordParam();  //Normalmente el mismo 'PASSWORD' del dominio.&lt;br /&gt;   &lt;br /&gt;   MQEnvironment.disableTracing();&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * enviarMensajeMQ&lt;br /&gt;  */&lt;br /&gt; public void enviarMensajeMQ(){&lt;br /&gt;  &lt;br /&gt;  try{   &lt;br /&gt;   this.cargarConfiguracionMQ(); &lt;br /&gt;   &lt;br /&gt;   System.out.println( "TRAMA ENVIADA [PUT]: " + this.objetoMQ.getMensajeTramaMQ() );&lt;br /&gt;    &lt;br /&gt;   this.objQueueManager = new MQQueueManager( this.objetoMQ.getNombreQManager() );   &lt;br /&gt;   &lt;br /&gt;   //Configurar las opciones en la cola que se va a abrir...&lt;br /&gt;   //Todas las opciones de WebSphere MQ tienen el prefijo MQC en Java.&lt;br /&gt;   int opcionesInputMQ  = MQC.MQOO_OUTPUT;        //MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT;&lt;br /&gt;    &lt;br /&gt;   //--------- Especificar las opciones de mensaje para ESCRIBIR (PUT). ---------------------------------------//&lt;br /&gt;   MQQueue             objColaOUT  = this.objQueueManager.accessQueue( this.objetoMQ.getColaInParam(), opcionesInputMQ, null, null, null   );   &lt;br /&gt;   MQPutMessageOptions opcionesPUT = new MQPutMessageOptions();&lt;br /&gt;   MQMessage           mensajeOUT  = new MQMessage();    //Definir un mensaje WebSphere MQ simple y escribir texto en formato UTF...&lt;br /&gt;   &lt;br /&gt;   mensajeOUT.writeUTF( this.objetoMQ.getMensajeTramaMQ() );&lt;br /&gt;      &lt;br /&gt;   mensajeOUT.messageId     = mensajeOUT.messageId;       //this.messageIdParam;&lt;br /&gt;   //mensajeOUT.correlationId = mensajeOUT.correlationId;  //this.correlationIdMQ.getBytes();&lt;br /&gt;   mensajeOUT.format        = MQC.MQFMT_STRING;           //Formato que consiste en Solo Caracteres enviados.  &lt;br /&gt;   &lt;br /&gt;   //Escribe el mensaje en la cola MQ.&lt;br /&gt;   objColaOUT.put( mensajeOUT, opcionesPUT ); &lt;br /&gt;   &lt;br /&gt;   //Cerrando Colas MQ.&lt;br /&gt;   objColaOUT.close();&lt;br /&gt;   &lt;br /&gt;   //Desconectar del gestor de colas&lt;br /&gt;   this.objQueueManager.disconnect();&lt;br /&gt;  }&lt;br /&gt;  catch( MQException e ){&lt;br /&gt;      int codigoTermino = e.completionCode ; &lt;br /&gt;      int codigoRazon   = e.reasonCode ; &lt;br /&gt;      &lt;br /&gt;               this.manejoErroresMQ.validaErrorMQ( codigoTermino, codigoRazon );      &lt;br /&gt;      System.exit( 0 );&lt;br /&gt;  }&lt;br /&gt;  catch( IOException e ){&lt;br /&gt;      System.out.println( "SE HA PRODUCIDO UN ERROR DE TIPO 'IOException': " + e );&lt;br /&gt;      System.exit( 0 );&lt;br /&gt;  }&lt;br /&gt;  finally{   &lt;br /&gt;  } &lt;br /&gt; } &lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * getObjetoProperties&lt;br /&gt;  * @return Properties&lt;br /&gt;  */&lt;br /&gt; public Properties getObjetoProperties(){&lt;br /&gt;  &lt;br /&gt;  String           rutaFichero   = null;         &lt;br /&gt;  Properties       accesoFichero = null;   &lt;br /&gt;  FileInputStream  streamInput   = null;&lt;br /&gt;  &lt;br /&gt;  try{&lt;br /&gt;   rutaFichero   = SOURCE_FORDER + ARCHIVO_CONFIGURACION;  //DESDE ECLIPSE.&lt;br /&gt;   //rutaFichero   = "ARCHIVO_CONFIGURACION";                //DESDE UNIX.&lt;br /&gt;   &lt;br /&gt;   accesoFichero = new Properties();  &lt;br /&gt;   streamInput   = new FileInputStream( rutaFichero );&lt;br /&gt;   &lt;br /&gt;   //Carga Fichero.&lt;br /&gt;   accesoFichero.load( streamInput ); &lt;br /&gt;  }&lt;br /&gt;  catch( IOException e ){&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;  } &lt;br /&gt;  &lt;br /&gt;  return accesoFichero;&lt;br /&gt; } &lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * imprimeDatosMQ&lt;br /&gt;  */&lt;br /&gt; public void imprimeDatosMQ(){&lt;br /&gt;  System.out.println( "" );&lt;br /&gt;  System.out.println( "*************** PARAMETROS DE CONFIGURACION ***************" );&lt;br /&gt;  System.out.println( "- QMANAGER:       " + this.objetoMQ.getNombreQManager()  );&lt;br /&gt;  System.out.println( "- COLA IN:        " + this.objetoMQ.getColaInParam()     );&lt;br /&gt;  System.out.println( "- COLA OUT:       " + this.objetoMQ.getColaOutParam()    );&lt;br /&gt;  System.out.println( "- CANAL:          " + this.objetoMQ.getCanalParam()      );&lt;br /&gt;  System.out.println( "- SERVIDOR:       " + this.objetoMQ.getServidorParam()   );&lt;br /&gt;  System.out.println( "- PUERTO:         " + this.objetoMQ.getPuertoParam()     );&lt;br /&gt;  System.out.println( "- ID:             " + this.objetoMQ.getIdParam()         );&lt;br /&gt;  System.out.println( "- PASSWORD:       " + this.objetoMQ.getPasswordParam()   );&lt;br /&gt;  System.out.println( "- MESSAGE ID:     " + this.objetoMQ.getMessageIdParam()  );&lt;br /&gt;  System.out.println( "- CORRELATION ID: " + this.objetoMQ.getCorrelationIdMQ() );&lt;br /&gt;  System.out.println( "***********************************************************" );&lt;br /&gt;  System.out.println( "" );&lt;br /&gt; }&lt;br /&gt; }&lt;/font&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="red" &gt;Clase 'PruebaObtieneMQ': &lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;package org.java.mq;&lt;br /&gt;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.util.Properties;&lt;br /&gt;import com.ibm.mq.MQC;&lt;br /&gt;import com.ibm.mq.MQEnvironment;&lt;br /&gt;import com.ibm.mq.MQException;&lt;br /&gt;import com.ibm.mq.MQGetMessageOptions;&lt;br /&gt;import com.ibm.mq.MQMessage;&lt;br /&gt;import com.ibm.mq.MQQueue;&lt;br /&gt;import com.ibm.mq.MQQueueManager;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * @author: cguerraa.&lt;br /&gt; * @clase: PruebaObtieneMQ.java  &lt;br /&gt; * @descripción: descripción de la clase.&lt;br /&gt; * @author_web: http://frameworksjava2008.blogspot.com - http://viviendoconjavaynomoririntentandolo.blogspot.com &lt;br /&gt; * @author_email: cesarricardo_guerra19@hotmail.com.&lt;br /&gt; * @author_company: nombre de la compañía del autor.&lt;br /&gt; * @fecha_de_creación: dd-mm-yyyy.&lt;br /&gt; * @fecha_de_ultima_actualización: dd-mm-yyyy.&lt;br /&gt; * @versión: 1.0&lt;br /&gt; */&lt;br /&gt;public class PruebaObtenerMQ{&lt;br /&gt;   &lt;br /&gt; private static final String ARCHIVO_CONFIGURACION = "ConfiguracionMQ.properties";&lt;br /&gt; private static final String SOURCE_FORDER         = "src/";&lt;br /&gt; &lt;br /&gt; private Properties      objProperties   = null;&lt;br /&gt; private MQQueueManager  objQueueManager = null;            &lt;br /&gt; private ManejoErroresMQ manejoErroresMQ = null;&lt;br /&gt; private ObjetoMQ        objetoMQ        = null;&lt;br /&gt; &lt;br /&gt; {&lt;br /&gt;     this.objProperties   = this.getObjetoProperties(); &lt;br /&gt;     this.manejoErroresMQ = new ManejoErroresMQ();  &lt;br /&gt;     this.objetoMQ        = new ObjetoMQ(); &lt;br /&gt;    }&lt;br /&gt;  &lt;br /&gt; //Constructores ...&lt;br /&gt; public PruebaObtenerMQ(){   &lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;    public PruebaObtenerMQ( String nombreQManager, String colaInParam, String colaOutParam, &lt;br /&gt;                      String canalParam, String servidorParam, String puertoParam, &lt;br /&gt;                      String idParam, String passwordParam ){  &lt;br /&gt;  super();&lt;br /&gt;  this.objetoMQ.setNombreQManager( nombreQManager );&lt;br /&gt;  this.objetoMQ.setColaInParam(    colaInParam    );&lt;br /&gt;  this.objetoMQ.setColaOutParam(   colaOutParam   );&lt;br /&gt;  this.objetoMQ.setCanalParam(     canalParam     );&lt;br /&gt;  this.objetoMQ.setServidorParam(  servidorParam  );&lt;br /&gt;  this.objetoMQ.setPuertoParam(    puertoParam    );&lt;br /&gt;  this.objetoMQ.setIdParam(        idParam        );&lt;br /&gt;  this.objetoMQ.setPasswordParam(  passwordParam  );&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;     * main&lt;br /&gt;     * @param argumentos&lt;br /&gt;     */&lt;br /&gt; public static void main( String[] argumentos ){&lt;br /&gt;   PruebaObtenerMQ conexionMQ = new PruebaObtenerMQ();&lt;br /&gt;   conexionMQ.obtenerMensajeMQ();&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * cargarConfiguracionMQ&lt;br /&gt;  */&lt;br /&gt; public void cargarConfiguracionMQ(){&lt;br /&gt;  &lt;br /&gt;      //Inicializando Paramentos ...&lt;br /&gt;   this.objetoMQ.setTiempoInicioMQ( Long.toString( ( new java.util.Date() ).getTime() ) );&lt;br /&gt;      //this.objetoMQ.setCorrelationIdMQ( this.tiempoInicioMQ + new java.util.Date().getTime() ); &lt;br /&gt;   this.objetoMQ.setCorrelationIdMQ( "COSAPISOFT" );  //HardCode.&lt;br /&gt;      &lt;br /&gt;   this.objetoMQ.setNombreQManager(  this.objProperties.getProperty( "propiedad.MQ.QManager"  ).trim() ); &lt;br /&gt;   this.objetoMQ.setColaInParam(     this.objProperties.getProperty( "propiedad.MQ.colaIN"    ).trim() );  &lt;br /&gt;   this.objetoMQ.setColaOutParam(    this.objProperties.getProperty( "propiedad.MQ.colaOUT"   ).trim() ); &lt;br /&gt;   this.objetoMQ.setCanalParam(      this.objProperties.getProperty( "propiedad.MQ.canal"     ).trim() );  &lt;br /&gt;   this.objetoMQ.setServidorParam(   this.objProperties.getProperty( "propiedad.MQ.servidor"  ).trim() );  &lt;br /&gt;   this.objetoMQ.setPuertoParam(     this.objProperties.getProperty( "propiedad.MQ.puerto"    ).trim() );  &lt;br /&gt;   this.objetoMQ.setIdParam(         this.objProperties.getProperty( "propiedad.MQ.id"        ).trim() );  &lt;br /&gt;   this.objetoMQ.setPasswordParam(   this.objProperties.getProperty( "propiedad.MQ.password"  ).trim() ); &lt;br /&gt;   this.objetoMQ.setMessageIdParam(  this.objProperties.getProperty( "propiedad.MQ.messageId" ).trim().getBytes() ); &lt;br /&gt;  &lt;br /&gt;   MQEnvironment.channel  = this.objetoMQ.getCanalParam();&lt;br /&gt;   MQEnvironment.hostname = this.objetoMQ.getServidorParam();&lt;br /&gt;   MQEnvironment.port     = Integer.parseInt( this.objetoMQ.getPuertoParam() );&lt;br /&gt;   MQEnvironment.userID   = this.objetoMQ.getIdParam();        //Normalmente el mismo 'ID' del dominio.&lt;br /&gt;   MQEnvironment.password = this.objetoMQ.getPasswordParam();  //Normalmente el mismo 'PASSWORD' del dominio.&lt;br /&gt;  &lt;br /&gt;   MQEnvironment.disableTracing();&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * obtenerMensajeMQ&lt;br /&gt;  */&lt;br /&gt; public void obtenerMensajeMQ(){&lt;br /&gt;  try{&lt;br /&gt;            this.cargarConfiguracionMQ();   &lt;br /&gt;   &lt;br /&gt;   this.objQueueManager = new MQQueueManager( this.objetoMQ.getNombreQManager() );      &lt;br /&gt;   &lt;br /&gt;   int opcionesOutputMQ = MQC.MQOO_INPUT_SHARED;&lt;br /&gt;   &lt;br /&gt;   //--------- Especificar las opciones de mensaje para OBTENER (GET). ---------------------------------------//&lt;br /&gt;   //MQQueue             objColaIN   = this.objetoMQ.accessQueue( this.colaOutParam, opcionesOutputMQ, null, null, null );    &lt;br /&gt;         MQQueue             objColaIN   = this.objQueueManager.accessQueue( "MQ.A", opcionesOutputMQ, null, null, null ); &lt;br /&gt;   //MQQueue objColaIN    = this.objetoMQ.accessQueue( "MQ.A", MQC.MQOO_INPUT_AS_Q_DEF );&lt;br /&gt;         &lt;br /&gt;   MQGetMessageOptions opcionesGET = new MQGetMessageOptions();&lt;br /&gt;   MQMessage           mensajeIN   = new MQMessage();&lt;br /&gt; &lt;br /&gt;   opcionesGET.options     = MQC.MQGMO_WAIT;&lt;br /&gt;      &lt;br /&gt;   mensajeIN.messageId     = mensajeIN.messageId;&lt;br /&gt;   //mensajeIN.correlationId = this.correlationIdMQ.getBytes(); //mensajeInput.correlationId;&lt;br /&gt;  &lt;br /&gt;   if( mensajeIN.correlationId != null ){    &lt;br /&gt;    System.out.println( "CORRELATION ID DEL MENSAJE 'IN': " + mensajeIN.correlationId );&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   //Obteniendo el mensaje de la COLA MQ.&lt;br /&gt;   objColaIN.get( mensajeIN, opcionesGET );&lt;br /&gt;  &lt;br /&gt;   String mensajeObtenido = mensajeIN.readString( mensajeIN.getTotalMessageLength() );&lt;br /&gt;   System.out.println( "TRAMA OBTENDIDA [GET]: " + mensajeObtenido );&lt;br /&gt;   &lt;br /&gt;   String tamanoMensajeObtenido = String.valueOf( mensajeIN.getTotalMessageLength() ); &lt;br /&gt;   System.out.println( "TAMAÑO 'TRAMA OBTENDIDA': [" + tamanoMensajeObtenido + "]" );   &lt;br /&gt;&lt;br /&gt;   //Cerrando Colas MQ.&lt;br /&gt;   objColaIN.close();&lt;br /&gt;   &lt;br /&gt;   this.objQueueManager.disconnect(); &lt;br /&gt;  }&lt;br /&gt;  catch( MQException e ){&lt;br /&gt;      int codigoTermino = e.completionCode ; &lt;br /&gt;      int codigoRazon   = e.reasonCode ; &lt;br /&gt;      &lt;br /&gt;               this.manejoErroresMQ.validaErrorMQ( codigoTermino, codigoRazon );      &lt;br /&gt;      System.exit( 0 );&lt;br /&gt;  }&lt;br /&gt;  catch( IOException e ){&lt;br /&gt;      System.out.println( "SE HA PRODUCIDO UN ERROR DE TIPO 'IOException': " + e );&lt;br /&gt;      System.exit( 0 );&lt;br /&gt;  }&lt;br /&gt;  finally{   &lt;br /&gt;  }  &lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * getObjetoProperties&lt;br /&gt;  * @return Properties&lt;br /&gt;  */&lt;br /&gt; public Properties getObjetoProperties(){&lt;br /&gt;  &lt;br /&gt;  String           rutaFichero   = null;         &lt;br /&gt;  Properties       accesoFichero = null;   &lt;br /&gt;  FileInputStream  streamInput   = null;&lt;br /&gt;  &lt;br /&gt;  try{&lt;br /&gt;   rutaFichero   = SOURCE_FORDER + ARCHIVO_CONFIGURACION;  //DESDE ECLIPSE.&lt;br /&gt;   //rutaFichero   = "ARCHIVO_CONFIGURACION";                //DESDE UNIX.&lt;br /&gt;   &lt;br /&gt;   accesoFichero = new Properties();  &lt;br /&gt;   streamInput   = new FileInputStream( rutaFichero );&lt;br /&gt;   &lt;br /&gt;   //Carga Fichero.&lt;br /&gt;   accesoFichero.load( streamInput ); &lt;br /&gt;  }&lt;br /&gt;  catch( IOException e ){&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;  } &lt;br /&gt;  &lt;br /&gt;  return accesoFichero;&lt;br /&gt; }  &lt;br /&gt; }&lt;/font&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="red" &gt;Clase 'PruebaEnviaObtieneMQ': &lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;package org.java.mq;&lt;br /&gt;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.util.Properties;&lt;br /&gt;import com.ibm.mq.MQC;&lt;br /&gt;import com.ibm.mq.MQEnvironment;&lt;br /&gt;import com.ibm.mq.MQException;&lt;br /&gt;import com.ibm.mq.MQGetMessageOptions;&lt;br /&gt;import com.ibm.mq.MQMessage;&lt;br /&gt;import com.ibm.mq.MQPutMessageOptions;&lt;br /&gt;import com.ibm.mq.MQQueue;&lt;br /&gt;import com.ibm.mq.MQQueueManager;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * @author: cguerraa.&lt;br /&gt; * @clase: PruebaEnviaObtieneMQ.java  &lt;br /&gt; * @descripción: descripción de la clase.&lt;br /&gt; * @author_web: http://frameworksjava2008.blogspot.com - http://viviendoconjavaynomoririntentandolo.blogspot.com &lt;br /&gt; * @author_email: cesarricardo_guerra19@hotmail.com.&lt;br /&gt; * @author_company: nombre de la compañía del autor.&lt;br /&gt; * @fecha_de_creación: dd-mm-yyyy.&lt;br /&gt; * @fecha_de_ultima_actualización: dd-mm-yyyy.&lt;br /&gt; * @versión: 1.0&lt;br /&gt; */&lt;br /&gt;public class PruebaEnviarObtenerMQ{&lt;br /&gt;   &lt;br /&gt; private static final String ARCHIVO_CONFIGURACION = "ConfiguracionMQ.properties";&lt;br /&gt; private static final String SOURCE_FORDER         = "src/";&lt;br /&gt; &lt;br /&gt; private static String TRAMA_INPUT                 = "MENSAJE GUARDADO DE FORMA DIRECTA VIA APLICATIVO JAVA - MQ ...!!!...ENVIO DE TRAMA DESDE LANZADOR EN JAVA.";&lt;br /&gt; &lt;br /&gt; private Properties      objProperties   = null;&lt;br /&gt; private MQQueueManager  objQueueManager = null;            &lt;br /&gt; private ManejoErroresMQ manejoErroresMQ = null;             &lt;br /&gt; private ObjetoMQ        objetoMQ        = null;&lt;br /&gt; &lt;br /&gt; {&lt;br /&gt;     this.objProperties  = this.getObjetoProperties(); &lt;br /&gt;     this.manejoErroresMQ = new ManejoErroresMQ();  &lt;br /&gt;     this.objetoMQ        = new ObjetoMQ(); &lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt; //Constructores ...&lt;br /&gt; public PruebaEnviarObtenerMQ(){   &lt;br /&gt; }&lt;br /&gt;  &lt;br /&gt; public PruebaEnviarObtenerMQ( String tramaParam ){&lt;br /&gt;  super();&lt;br /&gt;  TRAMA_INPUT = tramaParam;&lt;br /&gt; } &lt;br /&gt; &lt;br /&gt;    public PruebaEnviarObtenerMQ( String nombreQManager, String colaInParam, String colaOutParam, String canalParam, &lt;br /&gt;                            String servidorParam, String puertoParam, String idParam, String passwordParam ){&lt;br /&gt;  super();&lt;br /&gt;  this.objetoMQ.setNombreQManager( nombreQManager );&lt;br /&gt;  this.objetoMQ.setColaInParam(    colaInParam    );&lt;br /&gt;  this.objetoMQ.setColaOutParam(   colaOutParam   );&lt;br /&gt;  this.objetoMQ.setCanalParam(     canalParam     );&lt;br /&gt;  this.objetoMQ.setServidorParam(  servidorParam  );&lt;br /&gt;  this.objetoMQ.setPuertoParam(    puertoParam    );&lt;br /&gt;  this.objetoMQ.setIdParam(        idParam        );&lt;br /&gt;  this.objetoMQ.setPasswordParam(  passwordParam  );&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;    /**&lt;br /&gt;     * main&lt;br /&gt;     * @param argumentos&lt;br /&gt;     */&lt;br /&gt; public static void main( String[] argumentos ){&lt;br /&gt;  PruebaEnviarObtenerMQ conexionMQ = new PruebaEnviarObtenerMQ();&lt;br /&gt;  conexionMQ.enviarObtenerMQ();&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * enviarObtenerMQ&lt;br /&gt;  */&lt;br /&gt; public void enviarObtenerMQ(){&lt;br /&gt;  &lt;br /&gt;  try{ &lt;br /&gt;   this.cargarConfiguracionMQ(); &lt;br /&gt;   &lt;br /&gt;   System.out.println( "TRAMA ENVIADA [PUT]: " + this.objetoMQ.getMensajeTramaMQ() );&lt;br /&gt;&lt;br /&gt;   MQEnvironment.channel  = this.objetoMQ.getCanalParam();&lt;br /&gt;   MQEnvironment.hostname = this.objetoMQ.getServidorParam();&lt;br /&gt;   MQEnvironment.port     = Integer.parseInt( this.objetoMQ.getPuertoParam() );&lt;br /&gt;   MQEnvironment.userID   = this.objetoMQ.getIdParam();&lt;br /&gt;   MQEnvironment.password = this.objetoMQ.getPasswordParam();&lt;br /&gt;&lt;br /&gt;   //MQEnvironment.enableTracing( 2 );&lt;br /&gt;   MQEnvironment.disableTracing();&lt;br /&gt;   &lt;br /&gt;   this.objQueueManager = new MQQueueManager( this.objetoMQ.getNombreQManager() );   &lt;br /&gt;   &lt;br /&gt;   //Configurar las opciones en la cola que se va a abrir...&lt;br /&gt;   //Todas las opciones de WebSphere MQ tienen el prefijo MQC en Java.&lt;br /&gt;   int opcionesInputMQ  = MQC.MQOO_OUTPUT;        &lt;br /&gt;   int opcionesOutputMQ = MQC.MQOO_INPUT_SHARED;&lt;br /&gt;   &lt;br /&gt;   //--------- Especificar las opciones de mensaje para ESCRIBIR (PUT). ---------------------------------------//&lt;br /&gt;   MQQueue             objColaOUT  = this.objQueueManager.accessQueue( this.objetoMQ.getColaInParam(), opcionesInputMQ, null, null, null );   &lt;br /&gt;   MQPutMessageOptions opcionesPUT = new MQPutMessageOptions();&lt;br /&gt;   MQMessage           mensajeOUT  = new MQMessage();          //Definir un mensaje WebSphere MQ simple y escribir texto en formato UTF...&lt;br /&gt;   &lt;br /&gt;   mensajeOUT.messageId     = this.objetoMQ.getMessageIdParam();&lt;br /&gt;   mensajeOUT.correlationId = this.objetoMQ.getCorrelationIdMQ().getBytes();&lt;br /&gt;   mensajeOUT.format        = MQC.MQFMT_STRING;                //Formato que consiste en Solo Caracteres enviados.  &lt;br /&gt;   &lt;br /&gt;   //Definir un mensaje WebSphere MQ simple y escribir texto en formato UTF...&lt;br /&gt;   mensajeOUT.writeUTF( this.objetoMQ.getMensajeTramaMQ() );&lt;br /&gt;   &lt;br /&gt;   //Escribe el mensaje en la cola MQ.&lt;br /&gt;   objColaOUT.put( mensajeOUT, opcionesPUT ); &lt;br /&gt;   &lt;br /&gt;   //Cerrando Colas MQ.&lt;br /&gt;   objColaOUT.close();&lt;br /&gt;      &lt;br /&gt;   //--------- Especificar las opciones de mensaje para OBTENER (GET). ---------------------------------------//&lt;br /&gt;   MQQueue             objColaIN   = this.objQueueManager.accessQueue( this.objetoMQ.getColaInParam(), opcionesOutputMQ, null, null, null );    &lt;br /&gt;   MQGetMessageOptions opcionesGET = new MQGetMessageOptions();&lt;br /&gt;   MQMessage           mensajeIN   = new MQMessage();&lt;br /&gt;   &lt;br /&gt;   opcionesGET.options     = MQC.MQGMO_WAIT;&lt;br /&gt;   mensajeIN.messageId     = mensajeOUT.messageId;&lt;br /&gt;   mensajeIN.correlationId = mensajeOUT.correlationId;&lt;br /&gt;&lt;br /&gt;   if( mensajeIN.correlationId != null ){    &lt;br /&gt;    System.out.println( "CORRELATION ID DEL MENSAJE 'IN': " + mensajeIN.correlationId );&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   //Obteniendo el mensaje de la COLA MQ.&lt;br /&gt;   objColaIN.get( mensajeIN, opcionesGET );&lt;br /&gt;  &lt;br /&gt;   System.out.println( "" );&lt;br /&gt;   &lt;br /&gt;   String mensajeObtenido = mensajeIN.readString( mensajeIN.getTotalMessageLength() );&lt;br /&gt;   System.out.println( "TRAMA OBTENDIDA [GET]: " + mensajeObtenido );&lt;br /&gt;   &lt;br /&gt;   String tamanoMensajeObtenido = String.valueOf( mensajeIN.getTotalMessageLength() ); &lt;br /&gt;   System.out.println( "TAMAÑO 'TRAMA OBTENDIDA': [" + tamanoMensajeObtenido + "]" ); &lt;br /&gt;   &lt;br /&gt;   //Cerrando Colas MQ.&lt;br /&gt;   objColaOUT.close();&lt;br /&gt;   &lt;br /&gt;   //Desconectar del gestor de colas&lt;br /&gt;   this.objQueueManager.disconnect();&lt;br /&gt;  }&lt;br /&gt;  catch( MQException e ){&lt;br /&gt;      int codigoTermino = e.completionCode ; &lt;br /&gt;      int codigoRazon   = e.reasonCode ; &lt;br /&gt;      &lt;br /&gt;               this.manejoErroresMQ.validaErrorMQ( codigoTermino, codigoRazon );      &lt;br /&gt;      System.exit( 0 );&lt;br /&gt;  }&lt;br /&gt;  catch( IOException e ){&lt;br /&gt;      System.out.println( "SE HA PRODUCIDO UN ERROR DE TIPO 'IOException': " + e );&lt;br /&gt;      System.exit( 0 );&lt;br /&gt;  }&lt;br /&gt; } &lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * cargarConfiguracionMQ&lt;br /&gt;  */&lt;br /&gt; public void cargarConfiguracionMQ(){&lt;br /&gt;  &lt;br /&gt;      //Inicializando Paramentos ...&lt;br /&gt;   this.objetoMQ.setMensajeTramaMQ(  TRAMA_INPUT ); &lt;br /&gt;   this.objetoMQ.setTiempoInicioMQ(  Long.toString( ( new java.util.Date() ).getTime() ) );&lt;br /&gt;   this.objetoMQ.setCorrelationIdMQ( this.objetoMQ.getTiempoInicioMQ() + new java.util.Date().getTime() );      &lt;br /&gt;   this.objetoMQ.setNombreQManager(  this.objProperties.getProperty( "propiedad.MQ.QManager"  ).trim() ); &lt;br /&gt;   this.objetoMQ.setColaInParam(     this.objProperties.getProperty( "propiedad.MQ.colaIN"    ).trim() );  &lt;br /&gt;   this.objetoMQ.setColaOutParam(    this.objProperties.getProperty( "propiedad.MQ.colaOUT"   ).trim() ); &lt;br /&gt;   this.objetoMQ.setCanalParam(      this.objProperties.getProperty( "propiedad.MQ.canal"     ).trim() );  &lt;br /&gt;   this.objetoMQ.setServidorParam(   this.objProperties.getProperty( "propiedad.MQ.servidor"  ).trim() );  &lt;br /&gt;   this.objetoMQ.setPuertoParam(     this.objProperties.getProperty( "propiedad.MQ.puerto"    ).trim() );  &lt;br /&gt;   this.objetoMQ.setIdParam(         this.objProperties.getProperty( "propiedad.MQ.id"        ).trim() );  &lt;br /&gt;   this.objetoMQ.setPasswordParam(   this.objProperties.getProperty( "propiedad.MQ.password"  ).trim() ); &lt;br /&gt;   this.objetoMQ.setMessageIdParam(  this.objProperties.getProperty( "propiedad.MQ.messageId" ).trim().getBytes() );  &lt;br /&gt;      &lt;br /&gt;      //Imprimiendo Datos MQ.&lt;br /&gt;      this.imprimeDatosMQ();&lt;br /&gt;&lt;br /&gt;   MQEnvironment.disableTracing();&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * getObjetoProperties&lt;br /&gt;  * @return Properties&lt;br /&gt;  */&lt;br /&gt; public Properties getObjetoProperties(){&lt;br /&gt;  &lt;br /&gt;  String           rutaFichero   = null;         &lt;br /&gt;  Properties       accesoFichero = null;   &lt;br /&gt;  FileInputStream  streamInput   = null;&lt;br /&gt;  &lt;br /&gt;  try{&lt;br /&gt;   rutaFichero   = SOURCE_FORDER + ARCHIVO_CONFIGURACION;  //DESDE ECLIPSE.&lt;br /&gt;   //rutaFichero   = "ARCHIVO_CONFIGURACION";                //DESDE UNIX.&lt;br /&gt;   &lt;br /&gt;   accesoFichero = new Properties();  &lt;br /&gt;   streamInput   = new FileInputStream( rutaFichero );&lt;br /&gt;   &lt;br /&gt;   //Carga Fichero.&lt;br /&gt;   accesoFichero.load( streamInput ); &lt;br /&gt;  }&lt;br /&gt;  catch( IOException e ){&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;  } &lt;br /&gt;  &lt;br /&gt;  return accesoFichero;&lt;br /&gt; } &lt;br /&gt;  &lt;br /&gt; /**&lt;br /&gt;  * imprimeDatosMQ&lt;br /&gt;  */&lt;br /&gt; public void imprimeDatosMQ(){&lt;br /&gt;  System.out.println( "" );&lt;br /&gt;  System.out.println( "*************** PARAMETROS DE CONFIGURACION ***************" );&lt;br /&gt;  System.out.println( "- QMANAGER:       " + this.objetoMQ.getNombreQManager()  );&lt;br /&gt;  System.out.println( "- COLA IN:        " + this.objetoMQ.getColaInParam()     );&lt;br /&gt;  System.out.println( "- COLA OUT:       " + this.objetoMQ.getColaOutParam()    );&lt;br /&gt;  System.out.println( "- CANAL:          " + this.objetoMQ.getCanalParam()      );&lt;br /&gt;  System.out.println( "- SERVIDOR:       " + this.objetoMQ.getServidorParam()   );&lt;br /&gt;  System.out.println( "- PUERTO:         " + this.objetoMQ.getPuertoParam()     );&lt;br /&gt;  System.out.println( "- ID:             " + this.objetoMQ.getIdParam()         );&lt;br /&gt;  System.out.println( "- PASSWORD:       " + this.objetoMQ.getPasswordParam()   );&lt;br /&gt;  System.out.println( "- MESSAGE ID:     " + this.objetoMQ.getMessageIdParam()  );&lt;br /&gt;  System.out.println( "- CORRELATION ID: " + this.objetoMQ.getCorrelationIdMQ() );&lt;br /&gt;  System.out.println( "***********************************************************" );&lt;br /&gt;  System.out.println( "" );&lt;br /&gt; } &lt;br /&gt; } &lt;/font&gt; &lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://picasaweb.google.com/maktup2008/WEBSPHERE?feat=embedwebsite" target='blank' &gt;&lt;img src="http://lh6.ggpht.com/_fWM7zHplfWI/S-JZt0M9tBE/AAAAAAAAAck/ncy8dIL0PO4/s160-c/WEBSPHERE.jpg" width='300' height='200' /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt; Para mayor detalle descargar el ejemplo completo de: &lt;a href="http://www.megaupload.com/?d=WGVHMVT8" target="_blank" &gt;AQUÌ.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-4115402902675889876?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/4115402902675889876/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=4115402902675889876' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/4115402902675889876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/4115402902675889876'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/05/manejo-ibm-websphere-mq-en-java.html' title='MANEJO &apos;IBM WebSphere MQ&apos; EN JAVA'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_fWM7zHplfWI/S-JZt0M9tBE/AAAAAAAAAck/ncy8dIL0PO4/s72-c/WEBSPHERE.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-6857002855218134044</id><published>2010-05-02T20:31:00.000-07:00</published><updated>2010-10-10T22:36:07.438-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JAKARTA'/><category scheme='http://www.blogger.com/atom/ns#' term='SERVLET'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTPCLIENT'/><title type='text'>MANEJO DE JAKARTA HTTP CLIENT</title><content type='html'>Bueno en esta oportunidad postearé sobre un &lt;strong&gt;Framework muy útil&lt;/strong&gt;, para los casos en los que, muchos desarrolladores, en algún momento hemos estado en el escenario en el que teníamos que enviar parámetros a un &lt;strong&gt;Servlet&lt;/strong&gt; pero sin esta necesariamente en un &lt;strong&gt;JSP&lt;/strong&gt;, ni apoyándose en una funciona &lt;strong&gt;JavaScript&lt;/strong&gt;, sino que desde una clase JAVA. Para esto un Framework aparece en nuestro rescate, este se llama: &lt;font color="#FFFF99" &gt;'Jakarta Commons HttpClient'&lt;/font&gt;. Este Framework permite realizar una conexión directa a un JSP o un Servlet enviando fácilmente los parámetros respectivos y identificar rápidamente datos como del Response como: &lt;strong&gt;TIPO (GET/POST), URL, SERVLET, PARAMETROS DEL SERVLET, ESTATUS, HTML,&lt;/strong&gt; etc.&lt;br /&gt;&lt;br /&gt;El demo preparado muestra el manejo de &lt;strong&gt;'HttpClient'&lt;/strong&gt; y se conecta con un &lt;strong&gt;'Servlet'&lt;/strong&gt; de un demo anteriomente mostrado para manejos de Servlet´s. El ejemplo de Servket lo descargas de aquí: &lt;br /&gt;&lt;font color="#FFFF99" &gt; &lt;a href="http://frameworksjava2008.blogspot.com/2010/05/manejo-de-servlets.html" target="_blank" &gt;DEMO MANEJO SERVLET.&lt;/a&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Para mayor detalle descargar el ejemplo completo de 'HttpClient': &lt;a href="http://www.megaupload.com/?d=4ED50ZU0" target="_blank" &gt;AQUÌ.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-6857002855218134044?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/6857002855218134044/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=6857002855218134044' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6857002855218134044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6857002855218134044'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/05/manejo-de-jakarta-http-client.html' title='MANEJO DE JAKARTA HTTP CLIENT'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-5042318212664876252</id><published>2010-05-01T18:10:00.000-07:00</published><updated>2010-10-10T22:23:30.052-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SERVLET'/><title type='text'>MANEJO DE SERVLETs</title><content type='html'>Que tal esta oportunidad postearé sobre un tema ya un poco antiguo, pero que nunca pasará 100% de moda, ya que por mas frameworks que utilicemos para nuestros desarrollos en algún momento tendremos la necesidad de recurrir al uso de un &lt;strong&gt;Servlet&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;Un servlet es un objeto que se ejecuta en un servidor o contenedor JEE, especialmente diseñado para ofrecer contenido dinámico desde un servidor web, generalmente HTML. &lt;br /&gt;&lt;br /&gt;Un servlet implementa la interfaz &lt;strong&gt;javax.servlet.Servlet&lt;/strong&gt; o hereda alguna de las clases más convenientes para un protocolo específico (Ejm: &lt;strong&gt;javax.servlet.HttpServlet&lt;/strong&gt;). Al implementar esta interfaz el servlet es capaz de interpretar los objetos de tipo &lt;strong&gt;'HttpServletRequest'&lt;/strong&gt; y &lt;strong&gt;'HttpServletResponse'&lt;/strong&gt; quienes contienen la información de la página que invocó al &lt;strong&gt;servlet&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;Ciclo de vida de un Servlet. &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;El ciclo de vida de un Servlet se divide en los siguientes puntos:&lt;br /&gt;&lt;br /&gt;   &lt;strong&gt;1.&lt;/strong&gt; El cliente solicita una petición a un servidor vía URL.&lt;br /&gt;   &lt;strong&gt;2.&lt;/strong&gt; El servidor recibe la petición.&lt;br /&gt;         &lt;strong&gt;2.1.&lt;/strong&gt; Si es la primera, se utiliza el motor de Servlets para cargarlo y se llama al método init().&lt;br /&gt;         &lt;strong&gt;2.2.&lt;/strong&gt; Si ya está iniciado, cualquier petición se convierte en un nuevo hilo. Un Servlet puede manejar múltiples peticiones de clientes.&lt;br /&gt;   &lt;strong&gt;3.&lt;/strong&gt; Se llama al método service() para procesar la petición devolviendo el resultado al cliente.&lt;br /&gt;   &lt;strong&gt;4.&lt;/strong&gt; Cuando se apaga el motor de un Servlet se llama al método destroy(), que lo destruye y libera los recursos abiertos.&lt;br /&gt;&lt;br /&gt;Asi mismo un Servlet permite el acceso por medio de unos objetos, para el acceso al contexto de la aplicación.  &lt;br /&gt;&lt;font color="#FFFF99" &gt; &lt;br /&gt;-------------&lt;br /&gt;ServletConfig&lt;br /&gt;-------------&lt;/font&gt;&lt;br /&gt;- Para el acceso al contexto actual de una aplicación Web corriendo en una JVM.&lt;br /&gt;- Un ServletConfig por 'Servlet'.&lt;br /&gt;- Es usado para el acceso al 'ServletContext'.&lt;br /&gt;- Se accede al objeto mediante: getServletConfig().getInitParameter( "nombreParametro" );&lt;br /&gt;&lt;font color="#FFFF99" &gt; &lt;br /&gt;-------------- &lt;br /&gt;ServletContext&lt;br /&gt;--------------&lt;/font&gt;&lt;br /&gt;- Para el acceso al contexto actual de una aplicación Web corriendo en una JVM.&lt;br /&gt;- Usado para el acceso a la configuración de elemento &lt;context-param&gt; deployado.&lt;br /&gt;- Se acceder al objeto mediante: getServletContext().getInitParameter( "nombreParametro" );&lt;br /&gt;&lt;br /&gt;El ejemplo preparador muestra una aplicación dividida en 2 partes:&lt;br /&gt;&lt;br /&gt;La primera muestra un Login que valida un usuario y password, aqui se muestra el manejo de metodos como: &lt;strong&gt;doGet(), doPost(), service(), destroy()&lt;/strong&gt;, etc.Mientras que el segundo ejemplo muestra el manejo de un muy útil ImageServlet.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://picasaweb.google.com/lh/photo/s99Vi4Rw-qrJXSNJ9OeGyg?feat=embedwebsite" target='blank' &gt;&lt;img src="http://lh4.ggpht.com/_fWM7zHplfWI/S9zXXxq0a-I/AAAAAAAAAbw/QSJ0MOlRF5M/s144/MenuPrincipal.JPG" width='300' height='200' /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://picasaweb.google.com/lh/photo/SJMZ6vIEdtUuR_1V5Ni3PQ?feat=embedwebsite" target='blank' &gt;&lt;img src="http://lh6.ggpht.com/_fWM7zHplfWI/S9zXYT2E4qI/AAAAAAAAAb0/6-0v2EFj7vA/s144/ImageServlet.JPG" width='300' height='200' /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://picasaweb.google.com/lh/photo/N8EoHm5WlWfWM9Pc68mDUQ?feat=embedwebsite" target='blank' &gt;&lt;img src="http://lh6.ggpht.com/_fWM7zHplfWI/S9zXYS7wSJI/AAAAAAAAAb4/d_ZWUU6C-0M/s144/TipoServlet.JPG" width='300' height='200' /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://picasaweb.google.com/lh/photo/H5hzloKisy9nfsc8NOcgSw?feat=embedwebsite" target='blank' &gt;&lt;img src="http://lh6.ggpht.com/_fWM7zHplfWI/S9zXYZRM6YI/AAAAAAAAAb8/QgxXsoyomlU/s144/ResponsePOST.JPG" width='300' height='200' /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://picasaweb.google.com/lh/photo/EULnCXE9EteLIiEaSOeKqA?feat=embedwebsite" target='blank' &gt;&lt;img src="http://lh6.ggpht.com/_fWM7zHplfWI/S9zXYi7nadI/AAAAAAAAAcA/3SJy34fw-SM/s144/ResponseGET.JPG" width='300' height='200' /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Para mayor detalle descargar el ejemplo completo: &lt;a href="http://www.megaupload.com/?d=28G4O54L" target="_blank" &gt;AQUÌ.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-5042318212664876252?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/5042318212664876252/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=5042318212664876252' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/5042318212664876252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/5042318212664876252'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2010/05/manejo-de-servlets.html' title='MANEJO DE SERVLETs'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_fWM7zHplfWI/S9zXXxq0a-I/AAAAAAAAAbw/QSJ0MOlRF5M/s72-c/MenuPrincipal.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-2041458193782666903</id><published>2009-11-06T20:06:00.000-08:00</published><updated>2010-10-17T20:48:25.730-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Service'/><category scheme='http://www.blogger.com/atom/ns#' term='AXIS2'/><title type='text'>MANEJO DE  'WEB SERVICE' CON  'AXIS2'.</title><content type='html'>Hace un tiempo posteè sobre el manejo de &lt;strong&gt;Web Service&lt;/strong&gt; con &lt;strong&gt;&lt;a href="http://frameworksjava2008.blogspot.com/2009/06/manejo-de-web-service-con-axis.html" target="_blank" &gt;AXIS1&lt;/a&gt;&lt;/strong&gt;, esta vez mostraré el manejo de &lt;strong&gt;Web Service (Su consumo) &lt;/strong&gt; pero con &lt;strong&gt;AXIS2&lt;/strong&gt;. Este &lt;strong&gt;Framework AXIS2&lt;/strong&gt; a diferencia de su versión anterior AXIS1 permite un mejor manejo de los &lt;strong&gt;Web Service Orientados a Objetos&lt;/strong&gt;, ya que en la versión anterior de AXIS los Objetos del Service enviados como parámetros por el &lt;strong&gt;Web Service&lt;/strong&gt;, se podían regenerar desde un cliente WS pero para poder parsearlos se necesita de forma obligada el número de &lt;strong&gt;&lt;font color="#FFFF99" &gt;serialVersionUID&lt;/font&gt;  (Para poder comprobar que es el mismo objeto) &lt;/strong&gt;, aquí &lt;strong&gt;AXIS1&lt;/strong&gt; era débil. &lt;strong&gt;AXIS2&lt;/strong&gt; supero eso ya que no tiene este traspié. &lt;strong&gt;AXIS2&lt;/strong&gt; solamente posee un problema al momento de la generación del cliente WS que mas adelante mostraremos y solucionaremos.&lt;br /&gt;&lt;br /&gt;Al igual que el ejemplo posteado con &lt;strong&gt;AXIS1&lt;/strong&gt; mostraré la generación del &lt;strong&gt;Cliente WS&lt;/strong&gt; y consumo de dichos procesos:&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;/********** PROCESOS 'WS' **********/&lt;br /&gt;//Probando 'SUMA'.&lt;br /&gt;clienteWS.getResultadoSuma( numero_01, numero_02, accesoWS );&lt;br /&gt;    &lt;br /&gt;//Probando 'RESTA'.&lt;br /&gt;//clienteWS.getResultadoResta( numero_01, numero_02, accesoWS );&lt;br /&gt;    &lt;br /&gt;//Probando 'MULTIPLICACION'.&lt;br /&gt;//clienteWS.getResultadoMultiplicacion( numero_01, numero_02, accesoWS );&lt;br /&gt;    &lt;br /&gt;//Probando 'DIVISION'.&lt;br /&gt;//clienteWS.getResultadoDivision( numero_01, numero_02, accesoWS );  &lt;br /&gt;&lt;br /&gt;//Probando 'obtenerUsuario'.&lt;br /&gt;//clienteWS.getObjetoUsuario( accesoWS );&lt;br /&gt;    &lt;br /&gt;//Probando 'obtenerListaUsuarios'.&lt;br /&gt;//clienteWS.getListaUsuarios( accesoWS );;&lt;br /&gt;/***********************************/   &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Los pasos son los siguientes:&lt;br /&gt;&lt;br /&gt;1.- Tenemos el &lt;strong&gt;WSDL&lt;/strong&gt; ya generado del servidor &lt;strong&gt;&lt;font color="#FFFF99" &gt; “UsuarioServiceImpl.wsdl” &lt;/font&gt;&lt;/strong&gt;, este &lt;strong&gt;WSDL&lt;/strong&gt; esta en la ruta:  &lt;strong&gt;WebContent/wsdl/UsuarioServiceImpl.wsdl&lt;/strong&gt;. En base a esta ruta generaremos por medio de consola el Cliente &lt;strong&gt;AXIS2&lt;/strong&gt;, pero tendremos que configurar las variables de entorno antes.&lt;br /&gt;&lt;br /&gt;2.- Bajarte la ultima versión de AXIS2:  &lt;font color="#FFFF99" &gt;&lt;a href="http://ws.apache.org/axis2/1_5_1/installationguide.html" target="_blank" &gt;http://ws.apache.org/axis2/1_5_1/installationguide.html&lt;/a&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;3.- Ubicarla en una ruta en tu PC:  &lt;font color="#FFFF99" &gt; “D:\JAVA\Axis\axis2-1.5.1” &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;4.- Registrar las variables de entorno &lt;strong&gt;(Tanto en Usuario como en Sistema)&lt;/Strong&gt;:&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=" http://picasaweb.google.com/lh/photo/U5kmt_yUgiqd1KvlCd9B4Q?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh5.ggpht.com/_fWM7zHplfWI/SvT5hvZyXeI/AAAAAAAAAYc/nzEeACCayPw/s144/VariableEntorno1.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=" http://picasaweb.google.com/lh/photo/6BgPLBOPhoilOY0OJWdsBg?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh6.ggpht.com/_fWM7zHplfWI/SvT5hpcD2EI/AAAAAAAAAYg/NGq7h0WobI8/s144/VariableEntorno2.JPG " /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;5.- Generar el cliente AXIS2 desde consola aplicando el siguiente còdigo desde la ruta raiz del proyecto trabajado:&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;%AXIS2_HOME%/bin/WSDL2Java -p org.java.service -uri WebContent/wsdl/UsuarioServiceImpl.wsdl -s&lt;/font&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=" http://picasaweb.google.com/lh/photo/eqLbQMzvhX2IhVxd6YP0bw?feat=embedwebsite " target="blank" &gt;&lt;img src="http://lh5.ggpht.com/_fWM7zHplfWI/SvT7aZlzfhI/AAAAAAAAAYk/KvTSjjltK9s/s144/GnerandoClienteAXIS2.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt; &lt;br /&gt;6.- En este momento AXIS2 genera un error:&lt;br /&gt;&lt;br /&gt;Es posible que cuando se desee generar un cliente JAVA con AXIS2 en base a un WSDL, uno encuentre con un error así:&lt;br /&gt;   &lt;br /&gt;  &lt;strong&gt; &lt;font color="red" &gt;Unexpected subelement 'XXXX' &lt;/font&gt; &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Esto se debe a que &lt;strong&gt;AXIS2&lt;/strong&gt; genera el &lt;strong&gt;Cliente WS&lt;/strong&gt; de una forma no totalmente correcta. Ya que confunde los NameSpaceURI. Supongamos como en este caso que el &lt;strong&gt;Servidor WS&lt;/strong&gt; posee dos paquetes:&lt;br /&gt;   &lt;br /&gt;   &lt;font color="#FFFF99" &gt; - PAQUETE DEL OBJETO: &lt;strong&gt; org.java.bean&lt;/strong&gt; &lt;/font&gt;&lt;br /&gt;   &lt;font color="#FFFF99" &gt; - PAQUETE DEL WS:         &lt;strong&gt; org.java.servidor.ws&lt;/strong&gt; &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Al momento de la generación del Cliente WS con AXIS2, los NameSpaceURI se invierten y quedan de la siguiente manera:&lt;br /&gt;   &lt;br /&gt;  &lt;font color="#FFFF99" &gt; - NAMESPACE APUNTANDO AL OBJETO: &lt;strong&gt;   “http://bean.java.org"    &lt;/strong&gt; &lt;/font&gt;&lt;br /&gt;  &lt;font color="#FFFF99" &gt; - NAMESPACE APUNTANDO AL WS:   &lt;strong&gt;              "http://ws.servidor.java.org"  &lt;/strong&gt; &lt;/font&gt;&lt;br /&gt;   &lt;br /&gt; Aquí esta el problema y la solución seria buscar la clase &lt;strong&gt;'Stub'&lt;/strong&gt; generada, en este caso &lt;strong&gt;'ConsultaWSServiceStub'&lt;/strong&gt; y en ella buscar por cada &lt;strong&gt;Objeto&lt;/strong&gt; que se trabaje su: &lt;br /&gt;&lt;br /&gt;&lt;strong&gt; &lt;font color="#FFFF99" &gt; static MY_OBJETO parse: &lt;/font&gt; &lt;/strong&gt;  &lt;br /&gt;&lt;font color="green" &gt;&lt;br /&gt;   /** &lt;br /&gt; * Factory class that keeps the parse method&lt;br /&gt; */&lt;br /&gt;  public static class Factory{&lt;br /&gt;&lt;br /&gt;   /**&lt;br /&gt;    * static method to create the object Precondition: If this object is an element, the&lt;br /&gt;    * current or next start element starts this object and any intervening reader events&lt;br /&gt;    * are ignorable If this object is not an element, it is a complex type and the reader&lt;br /&gt;    * is at the event just after the outer start element Postcondition: If this object is&lt;br /&gt;    * an element, the reader is positioned at its end element If this object is a complex&lt;br /&gt;    * type, the reader is positioned at the end element of its outer element&lt;br /&gt;    */&lt;br /&gt; public static Usuario parse( javax.xml.stream.XMLStreamReader reader ) throws java.lang.Exception{&lt;br /&gt;    &lt;/font&gt;  &lt;br /&gt;    Y cambiar el &lt;strong&gt;NameSpace&lt;/strong&gt; para cada campo de &gt;&lt;font color="#FFFF99" &gt; cada Objeto trabajado&lt;/font&gt;, de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="red" &gt; AQUI SE DA EL 'ERROR': &lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;while( !reader.isStartElement() &amp;&amp; !reader.isEndElement() )&lt;br /&gt; reader.next();&lt;br /&gt;     if( reader.isStartElement() &amp;&amp; &lt;br /&gt;new javax.xml.namespace.QName( &lt;font color="red" &gt;"http://bean.java.org"&lt;/font&gt;, "nombre" ).equals( reader.getName() ) ){&lt;br /&gt;nillableValue = reader.getAttributeValue( "http://www.w3.org/2001/XMLSchema-instance", "nil" );&lt;br /&gt;if( !"true".equals( nillableValue ) &amp;&amp; !"1".equals( nillableValue ) ){&lt;br /&gt; java.lang.String content = reader.getElementText();&lt;br /&gt;    object.setNombre( org.apache.axis2.databinding.utils.ConverterUtil.convertToString( content ) );&lt;br /&gt;  }&lt;br /&gt;  else{&lt;br /&gt;          reader.getElementText(); // throw away text nodes if any.&lt;br /&gt;    }&lt;br /&gt;  reader.next();&lt;br /&gt; } // End of if for expected property start element&lt;br /&gt; else{&lt;br /&gt; // A start element we are not expecting indicates an invalid parameter was&lt;br /&gt; // passed throw new org.apache.axis2.databinding.ADBException( "Unexpected subelement " + reader.getLocalName() );&lt;br /&gt; }   &lt;br /&gt; &lt;/font&gt;&lt;br /&gt;     &lt;strong&gt;&lt;font color="red" &gt; AQUI SE DA EL 'SOLUCION': &lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;   while( !reader.isStartElement() &amp;&amp; !reader.isEndElement() )&lt;br /&gt;        reader.next();&lt;br /&gt;  if( reader.isStartElement() &amp;&amp; &lt;br /&gt;                 new javax.xml.namespace.QName( &lt;font color="red" &gt;"http://ws.servidor.java.org"&lt;/font&gt;, "nombre" ).equals( &lt;br /&gt;                reader.getName() ) ){&lt;br /&gt;         nillableValue = reader.getAttributeValue( "http://www.w3.org/2001/XMLSchema-instance", "nil" );&lt;br /&gt;      if( !"true".equals( nillableValue ) &amp;&amp; !"1".equals( nillableValue ) ){&lt;br /&gt;     java.lang.String content = reader.getElementText();&lt;br /&gt;     object.setNombre(           &lt;br /&gt;                        org.apache.axis2.databinding.utils.ConverterUtil.convertToString( content ) );&lt;br /&gt;    }&lt;br /&gt;    else{&lt;br /&gt;    reader.getElementText(); // throw away text nodes if any.&lt;br /&gt;    }&lt;br /&gt;    reader.next();&lt;br /&gt;   } // End of if for expected property start element&lt;br /&gt;   else{&lt;br /&gt; // A start element we are not expecting indicates an invalid parameter was&lt;br /&gt; // passed throw new org.apache.axis2.databinding.ADBException( "Unexpected subelement " + reader.getLocalName() );&lt;br /&gt;   }&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;7.- Creamos la clase:   &lt;font color="#FFFF99" &gt; org/java/client/ClienteWS_Generado.java&lt;/font&gt; y vamos descomentando y ejecutando los procesos anteriormente nombrados uno por uno para probar su manejo. Recordar que primero se tiene que desplegar el demo del 'Proyecto Servidor' que es parte del demo posteado llamado: &lt;strong&gt; &lt;a href=" http://frameworksjava2008.blogspot.com/2010/10/manejo-de-web-service-con-jax-ws.html" target="_blank" &gt; Ejemplo Web Service con JAX-WS&lt;/a&gt; &lt;/strong&gt;, para poder probar sin problemas el &lt;strong&gt;Cliente WS&lt;/strong&gt; con &lt;strong&gt;AXIS2&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Para mayor detalle descargar el ejemplo completo: &lt;a href="http://www.megaupload.com/?d=EFFXEX3E" target="_blank" &gt;AQUÌ.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-2041458193782666903?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/2041458193782666903/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=2041458193782666903' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/2041458193782666903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/2041458193782666903'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/11/manejo-de-web-service-con-axis2.html' title='MANEJO DE  &apos;WEB SERVICE&apos; CON  &apos;AXIS2&apos;.'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_fWM7zHplfWI/SvT5hvZyXeI/AAAAAAAAAYc/nzEeACCayPw/s72-c/VariableEntorno1.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-7751279131993296774</id><published>2009-10-15T15:09:00.000-07:00</published><updated>2009-10-15T15:24:33.013-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JODA'/><category scheme='http://www.blogger.com/atom/ns#' term='Fechas'/><title type='text'>MANEJO DE FECHAS CON JODA API</title><content type='html'>El manejo de Fechas en &lt;STRING&gt;JAVA&lt;/STRING&gt; siempre a sido un poco molestoso ya que uno por muchos motivos tiende al manejo de dichas fechas de diferentes formas: &lt;br /&gt;&lt;br /&gt;En &lt;font color="#FFFF99" &gt;&lt;STRING&gt;String, Date, Calendar, GregorianCalendar&lt;/STRING&gt;&lt;/font&gt;, etc.&lt;br /&gt;&lt;br /&gt;Y porque no hay un estándar en dicho manejo de fechas, las tendencias son siempre convertir formatear, reconvertir y volver a formatear para manipular los datos de un lado a otro. Bueno en esta oportunidad presento esta API Java que puede ayudar en algo dichos problemas ya que proporción objetos &lt;font color="#FFFF99" &gt; (No Deprecated)&lt;/font&gt; que son fáciles de manipular, que permiten muchas conversiones:  &lt;STRING&gt;StringToDate, DateToString, etc&lt;/STRING&gt;. y que con una sola línea te devuelve lo deseado, el API se llama &lt;STRING&gt;JODA&lt;/STRING&gt; y aquí les comparto una clase JAVA donde muestro su manejo. El manejo es tan fácil como decir:&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;int anos  = Years.yearsBetween( fechaInicio, fechaFin ).getYears();&lt;/font&gt;&lt;br /&gt; &lt;br /&gt;Aquí maestro el resumen informativo de un demo en donde trabajo el cálculo de 2 fechas:&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;FECHA INICIO [DateTime]: 1983-01-04T00:00:00.000-05:00&lt;br /&gt;FECHA FIN    [DateTime]: 2009-10-15T14:23:30.093-05:00&lt;br /&gt;&lt;br /&gt;FECHA INICIO [Date]: Tue Jan 04 00:00:00 COT 1983&lt;br /&gt;FECHA FIN    [Date]: Thu Oct 15 14:23:30 COT 2009&lt;br /&gt;&lt;br /&gt;FECHA INICIO [Date MGT]: 4 Jan 1983 05:00:00 GMT&lt;br /&gt;FECHA FIN    [Date MGT]: 15 Oct 2009 19:23:30 GMT&lt;br /&gt;&lt;br /&gt;FECHA INICIO [Date LOCALE]: 04-ene-1983 0:00:00&lt;br /&gt;FECHA FIN    [Date LOCALE]: 15-oct-2009 14:23:30&lt;br /&gt;&lt;br /&gt;FECHA INICIO [Calendar]: java.util.GregorianCalendar[time=410504400000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/Bogota",offset=-18000000,dstSavings=0,useDaylight=false,transitions=5,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=1983,MONTH=0,WEEK_OF_YEAR=1,WEEK_OF_MONTH=1,DAY_OF_MONTH=4,DAY_OF_YEAR=4,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-18000000,DST_OFFSET=0]&lt;br /&gt;&lt;br /&gt;FECHA FIN    [Calendar]: java.util.GregorianCalendar[time=1255634610093,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/Bogota",offset=-18000000,dstSavings=0,useDaylight=false,transitions=5,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2009,MONTH=9,WEEK_OF_YEAR=42,WEEK_OF_MONTH=3,DAY_OF_MONTH=15,DAY_OF_YEAR=288,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=2,HOUR_OF_DAY=14,MINUTE=23,SECOND=30,MILLISECOND=93,ZONE_OFFSET=-18000000,DST_OFFSET=0]&lt;br /&gt;&lt;br /&gt;//VALIDANDO&lt;br /&gt;[F.INICIO] ES ANTES [F.FIN]&lt;br /&gt;[F.FIN] ES DESPUES [F.INICIO]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DATOS [FECHA INICIO]&lt;br /&gt;--------------------&lt;br /&gt;AÑO:                1983&lt;br /&gt;AÑO DE LA CENTURIA: 83&lt;br /&gt;AÑO DE LA ERA:      1983&lt;br /&gt;MES DEL AÑO:        1&lt;br /&gt;DIA DEL MES:        4&lt;br /&gt;DIA DE LA SEMANA:   2&lt;br /&gt;DIA DEL AÑO:        4&lt;br /&gt;MINUTO DEL DIA:     0&lt;br /&gt;MINUTO DE LA HORA:  0&lt;br /&gt;SEGUNDO DEL DIA:    0&lt;br /&gt;SEGUNDO DEL MINUTO: 0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DATOS [FECHA FIN]&lt;br /&gt;-----------------&lt;br /&gt;AÑO:                2009&lt;br /&gt;AÑO DE LA CENTURIA: 9&lt;br /&gt;AÑO DE LA ERA:      2009&lt;br /&gt;MES DEL AÑO:        10&lt;br /&gt;DIA DEL MES:        15&lt;br /&gt;DIA DE LA SEMANA:   4&lt;br /&gt;DIA DEL AÑO:        288&lt;br /&gt;MINUTO DEL DIA:     863&lt;br /&gt;MINUTO DE LA HORA:  23&lt;br /&gt;SEGUNDO DEL DIA:    51810&lt;br /&gt;SEGUNDO DEL MINUTO: 30&lt;br /&gt;&lt;br /&gt;//OTROS DATOS&lt;br /&gt;DIAS ENTRE [F.INICIO] &amp; [F.FIN]:      9781&lt;br /&gt;MESES ENTRE [F.INICIO] &amp; [F.FIN]:     321&lt;br /&gt;AÑOS ENTRE [F.INICIO] &amp; [F.FIN]:      26&lt;br /&gt;MINUTOS ENTRE [F.INICIO] &amp; [F.FIN]:   14085503&lt;br /&gt;SEGUNDOS ENTRE [F.INICIO] &amp; [F.FIN]:  845130210&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Para descargar &lt;font color="#FFFF99" &gt;El demo&lt;/font&gt; pulsar:&lt;br /&gt;&lt;a href="http://rapidshare.com/files/293527256/Fechas_Joda_JavaApi.zip" target="_blank" &gt;AQUÌ.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-7751279131993296774?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/7751279131993296774/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=7751279131993296774' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/7751279131993296774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/7751279131993296774'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/10/manejo-de-fechas-con-joda-api.html' title='MANEJO DE FECHAS CON JODA API'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-1743994593407551164</id><published>2009-10-08T13:18:00.000-07:00</published><updated>2009-10-09T13:14:44.509-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>OBTENCIÒN DE DATOS DE XML CON XPATH Y JAVA</title><content type='html'>El otro dìa me encontre con un post que hablaba muy bien de un lenguaje de programaciòn para el ràpido acceso a datos embebidos en un fichero &lt;strong&gt;XML&lt;/strong&gt;, este lenguaje se llama &lt;strong&gt;XPATH&lt;/strong&gt;&lt;br /&gt;y es una versiòn superior a otro conocido pero màs antiguo lenguaje llamado &lt;strong&gt;XQL&lt;/strong&gt;, el cual su logica era en base a consultas tipo &lt;strong&gt;SQL&lt;/strong&gt; acceder a los datos pero no de una BD sino de &lt;strong&gt;XML&lt;/strong&gt; propiamente. &lt;strong&gt;XPATH&lt;/strong&gt; heredò toda la sintaxis de este lenguaje como predecesor que es y le ha puesto varias mejoras. &lt;strong&gt;XPATH&lt;/strong&gt; como lenguaje esta orientado a buscar información dentro de  &lt;br /&gt;documentos con esctructura en &lt;strong&gt;XML&lt;/strong&gt;. Uno de sus ùnicos defectos que le he podido encontrar es que no se pueden realizar &lt;strong&gt;JOINs&lt;/strong&gt;, pero se puede jugar con los datos obtenidos y cargar listas de datos por ejemplo de còdigos que pueden servir en entrada para la obtenciòn de datos de otra tabla &lt;strong&gt;(si lo orientamos a SQL por decir)&lt;/strong&gt; y que finalmente da un resultado similar al de un &lt;strong&gt;JOIN&lt;/strong&gt;. Este lenguaje es verdaderamente ràpido y lo mejor es que podemos trabajarlo simultaneamente con &lt;strong&gt;JAVA&lt;/strong&gt;, ya que &lt;strong&gt;JAVA&lt;/strong&gt; posee librerìas que soportan las consultas generadas con los &lt;strong&gt;XPATH Querys&lt;/strong&gt; y por ser un lenguaje superior &lt;strong&gt;JAVA&lt;/strong&gt; te permite lo anteiormente hablado de simular un &lt;strong&gt;JOIN&lt;/strong&gt; cargando &lt;br /&gt;listas y recorriendolas.     &lt;br /&gt;&lt;br /&gt;Al comienzo &lt;strong&gt;XPATH&lt;/strong&gt; puede causar un poco de molestia, ya que su sintaxis no es &lt;strong&gt;SQL&lt;/strong&gt;, pero poco a poco uno le agarra el truco, yo en medio dìa lo aprendì y para probarme que tan bien lo aprendì, busquè y encontre una muy buena WEB donde explican todo en Español sobre &lt;strong&gt;XPATH&lt;/strong&gt; y posse un &lt;strong&gt;SIMULADOR&lt;/strong&gt; donde te toman un &lt;strong&gt;TEST de sintaxis &lt;/strong&gt;&lt;br /&gt;que en base a preguntas y con un gran &lt;strong&gt;XML&lt;/strong&gt; a tu costado, tienes que demostrar que sabes y codificar tu Query y comparar el resultado que tienes con el resultado correcto, que tambien se muestra al lado.&lt;br /&gt;&lt;br /&gt;Los links son los siguientes:&lt;br /&gt; &lt;font color="#FFFF99" &gt;&lt;strong&gt;&lt;br /&gt; - TUTORIAL:     &lt;a href="http://geneura.ugr.es/~victor/cursillos/xml/XPath/" target="_blank" &gt;http://geneura.ugr.es/~victor/cursillos/xml/XPath&lt;/a&gt; &lt;br /&gt; - FICHERO XML:  &lt;a href="http://geneura.ugr.es/~victor/cursillos/xml/XPath/ejercicios_xpath_xml.html" target="_blank" &gt;http://geneura.ugr.es/~victor/cursillos/xml/XPath/ejercicios_xpath_xml.html&lt;/a&gt; &lt;br /&gt; - SIMULADOR:    &lt;a href="http://geneura.ugr.es/~victor/cursillos/xml/XPath/ejercicios_xpath.html" target="_blank" &gt;http://geneura.ugr.es/~victor/cursillos/xml/XPath/ejercicios_xpath.html&lt;/a&gt;   &lt;br /&gt; &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;Pero como este es un &lt;strong&gt;BLOG de JAVA&lt;/strong&gt;, tenemos que hablar de &lt;strong&gt;JAVA&lt;/strong&gt;, asi voy a mostrar la soluciòn de este simulador pero dentro de una aplicaciòn &lt;strong&gt;JAVA&lt;/strong&gt; que yo mismo cree y que de paso muestra el facil manejo de lentura de &lt;strong&gt;XML&lt;/strong&gt; que este &lt;strong&gt;XPATH&lt;/strong&gt; con &lt;strong&gt;JAVA&lt;/strong&gt; de manera conjunta hacen.&lt;br /&gt;&lt;br /&gt;Para descargar la aplicaciòn demo pulsar:&lt;font color="#FFFF99" &gt;&lt;strong&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/290403806/XPath_XML.zip" target="_blank" &gt;AQUI.&lt;/a&gt;  &lt;br /&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-1743994593407551164?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/1743994593407551164/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=1743994593407551164' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1743994593407551164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1743994593407551164'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/10/obtencion-de-datos-de-xml-con-xpath-y.html' title='OBTENCIÒN DE DATOS DE XML CON XPATH Y JAVA'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-3035755220321708568</id><published>2009-10-08T12:53:00.000-07:00</published><updated>2009-10-08T13:16:42.130-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>SIMPLE XML FRAMEWORK 1.2</title><content type='html'>En esta oportunidad voy a hablar sobre un muy buen y potente Framework para manipulaciòn de ficheros &lt;strong&gt;XML&lt;/strong&gt;. Este Framework se llama &lt;strong&gt;SIMPLE FRAMEWORK v1.2&lt;/strong&gt;. Este framework a diferencia de todos los anteriores Frameworks de parseo de datos para ficheros XML que he utilizado previamente, los cuales trabajan para la obtencion de los datos recorriendo y recorreindo todos los XML muchas veces y que la verdad no es òptimo. Por ejemplo en mi trabajo los XML que manejamos son verdaderamente &lt;strong&gt;GIGANTES&lt;/strong&gt; tanto  asì que para su recorrido y obtenciòn de los datos podìan demorar unas 2 horas en algunos casos, algo realmente catastròfico. Bueno este framework viene para la salvaciòn de estos problemas, ya que su logica de trabajo esta orientada a la creaciòn y manipulaciòn de los &lt;strong&gt;XML&lt;/strong&gt; pero con una &lt;strong&gt;Lògica Orientada a Objetos&lt;/strong&gt;, ustedes diran como??, bueno para su trabajo se debe ter una seria de objetos (Beans) relacionados de la misma forma que uno quiere que su XML este formado (herendando, instanciando, etc) a tal punto de que cuando uno mande a generar el &lt;strong&gt;XML&lt;/strong&gt; el framework lo genere de una forma excelente y en un màximo 10 lineas de còdigo y luego cuando se requiere acceder a los datos del &lt;strong&gt;XML&lt;/strong&gt;, el mètodo respectivo que instancia el fichero &lt;strong&gt;XML&lt;/strong&gt; automaticamente carga en memoria todo el &lt;strong&gt;XML&lt;/strong&gt; y uno simplemente recorrerìa los objeto dentro de tu aplicacion via GET y obtendrìas los datos, todo un registro o una lista de registros de forma completa. Eso si este &lt;strong&gt;Framework&lt;/strong&gt; trabaja con &lt;strong&gt;JAVA mìnimo 1.5&lt;/strong&gt;, ya que manipula los beans con Anotaciones.&lt;br /&gt;&lt;br /&gt;Aquì les comparto un completo ejemplo para mostrales la potencia de este Framework:&lt;br /&gt;&lt;a href="http://rapidshare.com/files/290404062/Simple_XML_Framework_1.2.zip" target="_blank" &gt;Descargar.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-3035755220321708568?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/3035755220321708568/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=3035755220321708568' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/3035755220321708568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/3035755220321708568'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/10/simple-xml-framework-12.html' title='SIMPLE XML FRAMEWORK 1.2'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-616627909618309544</id><published>2009-07-22T10:44:00.000-07:00</published><updated>2009-07-22T19:57:51.000-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ibatis'/><category scheme='http://www.blogger.com/atom/ns#' term='Jsf'/><title type='text'>Integración JSF - IBATIS</title><content type='html'>Hola compañeros en esta oportunidad estoy posteando sobre este muy bonito Framework&lt;br /&gt;llamado &lt;strong&gt;IBATIS&lt;/strong&gt;, la verdad no muchos motivos no lo había utilizado antes, pero por necesidad de que el manejo de dicho framework es Standard en mi centro de trabajo, me dedique un par de días a investigar todo acerca de este framework y de di con la sorpresa de que es muy útil, rápido de configurar e integrar con otros frameworks a comparación de otros como &lt;strong&gt;Hibernate ( Aunque la verdad aun prefiero trabajar con Hibernate )&lt;/strong&gt;. Este framework lo muy bueno que tiene es que las &lt;strong&gt;consultas SQL&lt;/strong&gt; las realiza en un fichero &lt;strong&gt;.XML&lt;/strong&gt; que esta necesariamente amarrado a un objeto del negocio y donde se mapearan todas las consultas relacionadas a las transacciones en donde este objeto este relacionado, las consultas están embebidas dentro de tags especiales del &lt;strong&gt;IBATIS&lt;/strong&gt; que permiten recibir variables primitivas, variables de tipo  clase y hasta objetos completos. Permite el uso de comodines para las consultas y parámetros dinámicos diferenciados por símbolos como el #, permite la reutilización de las consultas realizadas &lt;strong&gt;( Llamado de un QUERRY a otro QUERRY )&lt;/strong&gt;, para minimizar código, Manejo de &lt;strong&gt;Store Procedure&lt;/strong&gt;, etc. Todo esto dentro de los mapeos y desde la implementación de cualquier &lt;strong&gt;DAO&lt;/strong&gt; asignado simplemente se le llamaría por medio del nombre del ID el cual esta asignado al &lt;strong&gt;IBATIS&lt;/strong&gt; tag que envuelve la consulta &lt;strong&gt;SQL&lt;/strong&gt; respectiva, algo como lo que muestro pero empleado para distintos procesos &lt;strong&gt;CRUD&lt;/strong&gt;:&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;• Integer estadoGuardar = (Integer)this.update(    "nombreIdSQL", nombreMiObjeto ); &lt;br /&gt;&lt;br /&gt;• Usuario objUsuario    = (Usuario)this.insert(    "nombreIdSQL", nombreMiObjeto ); &lt;br /&gt;&lt;br /&gt;• Usuario usuario       = (Usuario)queryForObject( "nombreIdSQL", codigo );  &lt;br /&gt;&lt;br /&gt;• List&lt;Usuario&gt; listaUsuario = (List&lt;Usuario&gt;)queryForList( "getListaUsuario", codigo );&lt;br /&gt;&lt;/font&gt;&lt;br /&gt; &lt;br /&gt;Pensando en esto he visto la necesidad de hacer un aplicativo &lt;strong&gt;J2EE&lt;/strong&gt; de ejemplo donde integro los Frameworks &lt;strong&gt;JSF y IBATIS&lt;/strong&gt;. Es un ejemplo muy completo que se inicia con un login:&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;&lt;strong&gt;Usuario:&lt;/strong&gt;   rguerra&lt;br /&gt;&lt;strong&gt;Password:&lt;/strong&gt;  123&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Y internamente es un &lt;strong&gt;mantenimiento&lt;/strong&gt; completo de &lt;strong&gt;USUARIOS&lt;/strong&gt;: &lt;strong&gt;Listado, Registro, Modificacion, Eliminacion (CRUD)&lt;/strong&gt; y ademas le he agredado Filtros con comboBoxs y funcionalidad keyPress. &lt;br /&gt;&lt;br /&gt;El aplicativo WEB esta realizado con &lt;strong&gt;Eclipse v3.3&lt;/strong&gt;, bajo una plataforma &lt;strong&gt;JAVA v1.6 (Pero funciona tambien con la v1.5)&lt;/strong&gt;, &lt;strong&gt;IBATIS v2.1.6&lt;/strong&gt; y una motor datos &lt;strong&gt;MySql&lt;/strong&gt;. El Script &lt;strong&gt;SQL&lt;/strong&gt; se encuentra dentro del proyecto y viene con un &lt;strong&gt;Store Procedure&lt;/strong&gt; incluido utilizado para el proceso de logín.&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;strong&gt;Aplicativo Ejemplo:&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Login de la aplicacion..&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/tb08HkiRMS9d0noFAsZ8fg?feat=embedwebsite" target="blank"&gt;&lt;img src="http://lh4.ggpht.com/_fWM7zHplfWI/SmdJ0y0pamI/AAAAAAAAAQM/125cQndOOmc/s144/Login.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Listado de Usuarios&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/hHCFT98sdqotc4kp_pmrtA?feat=embedwebsite" target="blank"&gt;&lt;img src="http://lh3.ggpht.com/_fWM7zHplfWI/SmdJ0wyg5rI/AAAAAAAAAQQ/znrTynmFuy0/s144/Listado1.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Registro de Usuarios Nuevos de tipo 'Administrador'&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/wBGGxqbrwqy6NiFUrz_pfw?feat=embedwebsite" target="blank"&gt;&lt;img src="http://lh5.ggpht.com/_fWM7zHplfWI/SmdJ1MFRBkI/AAAAAAAAAQU/fe6C3aLy_38/s144/Registro.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Usuaio Nuevo Listado&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/GtNoiRUy70XK5YrG0jbuzw?feat=embedwebsite" target="blank"&gt;&lt;img src="http://lh4.ggpht.com/_fWM7zHplfWI/SmdJ1HV8jjI/AAAAAAAAAQY/w2ZnFSSMMCA/s144/Listado2.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Modificacion de Usuario Nuevo&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/1iynwwL1LfI4lT1yWW-aZQ?feat=embedwebsite" target="blank"&gt;&lt;img src="http://lh3.ggpht.com/_fWM7zHplfWI/SmdJ1W7O0fI/AAAAAAAAAQc/9oODocM_sQo/s144/Modificar.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Listado de Usuario Modificado&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/maktup2008/JSF_Ibatis?feat=embedwebsite#5361336277956591058" target="blank"&gt;&lt;img src="http://lh4.ggpht.com/_fWM7zHplfWI/SmdK8HEEfdI/AAAAAAAAAQg/kAY8uLAlkus/s144/Listar3.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Eliminacion de Usuario Modificado&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/maktup2008/JSF_Ibatis?feat=embedwebsite#5361336277953046114" target="blank"&gt;&lt;img src="http://lh6.ggpht.com/_fWM7zHplfWI/SmdK8HDOZmI/AAAAAAAAAQk/DC-OHlQ1E30/s144/Eliminar.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Listado de Usuarios Actuales&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/maktup2008/JSF_Ibatis?feat=embedwebsite#5361336284001292978" target="blank"&gt;&lt;img src="http://lh4.ggpht.com/_fWM7zHplfWI/SmdK8dlPUrI/AAAAAAAAAQo/Pm6_VGX1MBI/s144/Listar4.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Para mayor detalle descargar el ejemplo completo: &lt;a href="http://rapidshare.com/files/258944119/Manejo_JSF_Ibatis.zip" target="_blank" &gt;AQUI.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-616627909618309544?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/616627909618309544/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=616627909618309544' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/616627909618309544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/616627909618309544'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/07/integracion-jsf-ibatis.html' title='Integración JSF - IBATIS'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_fWM7zHplfWI/SmdJ0y0pamI/AAAAAAAAAQM/125cQndOOmc/s72-c/Login.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-4986187721638266497</id><published>2009-06-01T21:35:00.000-07:00</published><updated>2010-10-10T22:57:57.628-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Service'/><category scheme='http://www.blogger.com/atom/ns#' term='AXIS1'/><title type='text'>MANEJO DE 'WEB SERVICE' CON 'AXIS1'.</title><content type='html'>Ultimamente en mi nuevo trabajo me solicitaron la integracion de dos sistemas que trabajaban por separado y analizando decidi aplicar &lt;strong&gt;'Web Service'(WS)&lt;/strong&gt;, asi que buscando decidi aplicar este muy buen Framework para manejo en JAVA de &lt;font color="#FFFF99" &gt; Web Service 'AXIS1'&lt;/font&gt;. El ejemplo presentado acontinuaciòn consiste en dos proyectos &lt;strong&gt;JAVA&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt; 1.- Ejemplo_ServidorWS_AXIS1:&lt;/font&gt;&lt;br /&gt;  - Posee clases de conexion a MySql.&lt;br /&gt;  - Posee un Patròn DAO y las Interfaces respectivas.&lt;br /&gt;  - Posee Servicios de acceso.&lt;br /&gt;  - Aqui se genarara el 'WSDL'&lt;strong&gt;(Que es un XML mapeado con los paràmetros que  accederàn de un sistema al otro)&lt;/strong&gt;, mediante la herramienta que brinda Eclipse.   &lt;br /&gt;                      &lt;br /&gt;&lt;font color="#FFFF99" &gt; 2.- Ejemplo_ClienteWS_AXIS1:&lt;/font&gt;&lt;br /&gt;  - Posee dos ejemplos de Cliente 'Web Service', el primero generado mediante la     herramienta del Eclipse para generar un 'Cliente WS' en base al 'WSDL' ya creado, y el segundo cliente es en base varias clases que brinda 'AXIS' para el acceso automàtico en base a solo el nombre de la ruta del 'WSDL' en String.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt;Datos Importante (Sobre el Ejemplo a Descargar):&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;- El ejemplo del manejo de Web Service esta preparado para correr con platformas JAVA &lt;font color="#FFFF99" &gt;v1.5 y v1.6 &lt;/font&gt;&lt;strong&gt;(Aqui se debe quitar de a carpeta 'lib': jsp-api.jar y servlet.jar ya que vienen dentro del 'JDK-1.6' sino crea conflicto y no levantar la aplicaciòn)&lt;/strong&gt;, trabaja con una conexion a MySql &lt;strong&gt;(El Stript se encuentra dentro del Aplicativo Servidor)&lt;/strong&gt; y fue desarrollado en Eclipse v3.3.&lt;br /&gt;&lt;br /&gt;- Para levantar el 'Web Service', se tiene que tener ya un proyecto Java listo con las conexion a MySql, que trabajara como 'Servidor' y en base a la Implementacion de una Interface 'DAO' o la de un 'Servicio' se generara el 'WSDL', donde se mapearan los datos de entrada y salida para la interconexion de los sistemas. &lt;strong&gt;(Al correr la aplicaciòn con el Tomcat, se levanta junto con la aplicacion el servicio 'WSDL')&lt;/strong&gt;. &lt;font color="#FFFF99" &gt; Ver imagenes:&lt;/font&gt;   &lt;br /&gt;&lt;br /&gt;Se muestra el arbol de la aplicaciòn que servirà de Servidor para el 'WS'.&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Vod6EvrXC-bxsuuH07A3fQ?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh5.ggpht.com/_fWM7zHplfWI/SiS3qi4GA0I/AAAAAAAAAN8/2AarbjKbmqI/s144/Foto_01.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Comenzamos a generar el 'WS' con la herramienta de Eclipse.&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Hn2uo6bX5ioCxfJLU5X4PA?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh5.ggpht.com/_fWM7zHplfWI/SiS3qzm9hhI/AAAAAAAAAOA/2nI7s8VXkfA/s144/Foto_02.jpg" &gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Seguir pasos que se muestran en la imagen.&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/AN59I8ittLUzxi1b29AFhw?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh5.ggpht.com/_fWM7zHplfWI/SiS3qxYFQmI/AAAAAAAAAOE/9dB_LT9DoPQ/s144/Foto_03.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Chequear los mètodos que serviràn para la generaciòn del 'WS' &lt;br /&gt;(Seran mapeados en el XML).&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/N5rgEX8480x23h_0WtSCPA?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh6.ggpht.com/_fWM7zHplfWI/SiS3q8mCA6I/AAAAAAAAAOI/bfaBe78ZtPo/s144/Foto_04.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Iniciar el Servidor y pulsar finalizar.&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/gCleHDR3HBmba1hcDQuhgg?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh4.ggpht.com/_fWM7zHplfWI/SiS3rM1veTI/AAAAAAAAAOM/K1iq4umw-_M/s144/Foto_05.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Se levantarà la aplicaciòn y se mostrarà una pàgina 'JSP'.&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/7ep8602LBHTHVeh_lvkCqw?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh4.ggpht.com/_fWM7zHplfWI/SiS5LFi7qsI/AAAAAAAAAOQ/7sDslbVw4Z0/s144/Foto_06.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Del 'WDSL' generado obtendremos la ruta del del 'WSDL' para probar si el servicio esta iniciado.&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/lRK0d3eps1wtu4RfBEcVow?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh6.ggpht.com/_fWM7zHplfWI/SiS5LEMZWpI/AAAAAAAAAOU/29WRt5bvvT4/s144/Foto_07.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;A la vez que se levanta el servidor se inicia el Servicio del 'WS'. Observemos el 'WSDL' generado agregando al link el '?wsdl'.&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/e6YWx1hCSFhbaTHAHR7_ew?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh6.ggpht.com/_fWM7zHplfWI/SiS5Lbhsn9I/AAAAAAAAAOY/nio5eT_Y_bA/s144/Foto_08.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Luego de esto, para generar el cliente con la herramienta que facilita el Eclipse&lt;br /&gt;copiamos la carpeta 'WSDL' con todo su contenido del Proyecto Java que sirve de 'Servidor' al proyecto que servirà de 'Cliente' y del 'UsuarioDaoImpl.wsdl' generar las clases base.&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/MB7eadZ-XXZVVCgnorPnbQ?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh3.ggpht.com/_fWM7zHplfWI/SiS5LS-ZKlI/AAAAAAAAAOc/vX81GP5c18w/s144/Foto_09.jpg" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Dar los cheks respectivos que se muestran en la imagen.&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/hNpngP77kJD4dlKMrCXKuA?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh5.ggpht.com/_fWM7zHplfWI/SiS5LS7nu6I/AAAAAAAAAOg/0ga7AGwlVWQ/s144/Foto_10.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Se muestra la ubicaciòn donde se generà las clases de apoyo al 'WS' (org.java.dao) en la aplicacion 'Cliente'.&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/DseedxrzWX_DsZ8qRwS_VA?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh4.ggpht.com/_fWM7zHplfWI/SiS6cIFzHxI/AAAAAAAAAOo/C_ByY9kdLQQ/s144/Foto_11.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Se muestran las clases generadas en el proyecto Cliente 'WS'.&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/B4YjFKS9gOveg18dyZuDmg?feat=embedwebsite" target="blank" &gt;&lt;img src="http://lh4.ggpht.com/_fWM7zHplfWI/SiS6cGo78_I/AAAAAAAAAOs/g2tuQh73E8w/s144/Foto_12.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Luego de estos pasos, ya podemos trabajar con el cliente 'WS'. Mostrarè &lt;strong&gt;dos formas de realizar un cliente 'WS'&lt;/strong&gt; para realizar un mantenimiento via 'WS', los procesos seràn los siguientes y se ejecutaràn en base al orden que sean descomentados:&lt;br /&gt;&lt;font color="#FFFF99" &gt; &lt;br /&gt;   /********** PROCESOS 'WS' **********/&lt;br /&gt;   clienteWS.registrarUsuario( accesoWS );&lt;br /&gt;   //clienteWS.modificarUsuario( accesoWS );&lt;br /&gt;   //clienteWS.eliminarUsuario(  accesoWS );&lt;br /&gt;   //clienteWS.obtenerObjetoUsuario( accesoWS );&lt;br /&gt;   //clienteWS.obtenerListaObjetosUsuario( accesoWS );&lt;br /&gt;   /**************************************/&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;strong&gt;1.- &lt;/strong&gt;&lt;font color="#FFFF99" &gt;Cliente 'WS' en base a las clases generadas:&lt;/font&gt;&lt;strong&gt;'src.org.java.client.ClienteWS_Generado.java'&lt;/strong&gt;, utiliza las clases generadas por Eclipse para conectarse al 'WSDL'.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.-&lt;/strong&gt; &lt;font color="#FFFF99" &gt; Cliente 'WS' de acceso automàtico sin utilizar ninguna clase generada:&lt;/font&gt;&lt;strong&gt;'src.org.java.client.ClienteWS.java'&lt;/strong&gt;, no necesita ninguna clase sino que utiliza las Clases que brinda &lt;strong&gt;AXIS&lt;/strong&gt; para el acceso automàtico, necesitando simplemente la ruta del 'WSDL' en String.&lt;br /&gt;&lt;br /&gt;Para mayor detalle descargar el ejemplo completo: &lt;a href="http://www.megaupload.com/?d=6Q8OQ159" target="_blank" &gt;AQUI.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-4986187721638266497?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/4986187721638266497/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=4986187721638266497' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/4986187721638266497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/4986187721638266497'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/06/manejo-de-web-service-con-axis.html' title='MANEJO DE &apos;WEB SERVICE&apos; CON &apos;AXIS1&apos;.'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_fWM7zHplfWI/SiS3qi4GA0I/AAAAAAAAAN8/2AarbjKbmqI/s72-c/Foto_01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-8865856411052719137</id><published>2009-06-01T21:04:00.000-07:00</published><updated>2010-05-01T18:59:59.226-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quarz'/><title type='text'>AUTOMATIZACIÒN DE PROCESOS CON 'QUARZ'</title><content type='html'>Hace tiempo estaba buscando alguna forma de como realizar &lt;strong&gt;'Procesos Automàticos'&lt;/strong&gt;, que estos se ejecuten periodicamente, que a la vez la configuracion de estos Procesos Automaticos conocidos como &lt;strong&gt;(JOBs)&lt;/strong&gt; sean totalmente personalizables y los importante que sea hecho en &lt;strong&gt;JAVA&lt;/strong&gt;. Asi que buscando buscando encontre este muy buen 'Framework'  &lt;strong&gt;&lt;font color="#FFFF99" &gt; 'QUARZ'&lt;/font&gt;&lt;/strong&gt;, que permite todo lo anterior dicho y màs. Aquì muestro el manejo de este muy buen Framework:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99" &gt;Configuraciòn:&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;1.-&lt;/strong&gt;Configuramos el &lt;strong&gt;Web.xml&lt;/strong&gt;, ingresando el acceso al servlet:&lt;br /&gt;&lt;br /&gt; [servlet]&lt;br /&gt;   [servlet-name]QuartzInitializer[/servlet-name]&lt;br /&gt;   [display-name]Quartz Initializer Servlet[/display-name]&lt;br /&gt;   [servlet-class]org.quartz.ee.servlet.QuartzInitializerServlet&lt;br /&gt;          [/servlet-class]&lt;br /&gt;   [load-on-startup]1[/load-on-startup]&lt;br /&gt; [/servlet]&lt;br /&gt; &lt;br /&gt; [servlet]&lt;br /&gt;   [servlet-name]QuarzMB[/servlet-name]&lt;br /&gt;   [display-name]Quartz Servlet[/display-name]&lt;br /&gt;   [servlet-class]org.java.manageBean.QuarzMB[/servlet-class]&lt;br /&gt;   [load-on-startup]2[/load-on-startup]&lt;br /&gt; [/servlet] &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.-&lt;/strong&gt; Este al ejecutarce la aplicaciòn accedera automaticamente a:&lt;br /&gt;    &lt;strong&gt;'org.java.manageBean.QuarzMB'&lt;/strong&gt; y a su metodo:&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;public void init( ServletConfig config ) throws ServletException{&lt;br /&gt;     System.out.println( "DENTRO DE 'init( ServletConfig config )' " );&lt;br /&gt;     &lt;br /&gt;     super.init( config );&lt;br /&gt;     &lt;br /&gt;     try{&lt;br /&gt;  this.IniciarQuarz();&lt;br /&gt;     } &lt;br /&gt;     catch( IOException e ){&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;     }  &lt;br /&gt; }&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;strong&gt;3.-&lt;/strong&gt;En el metodo &lt;strong&gt;'IniciarQuarz()'&lt;/strong&gt; descomentaremos el ejemplo de los tres ejemplos que he preparado para la demostracion de este Framework:&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt; public void IniciarQuarz() throws ServletException, IOException{&lt;br /&gt;     System.out.println( "DENTRO DE 'IniciarQuarz()' " );&lt;br /&gt;     &lt;br /&gt;  try{&lt;br /&gt;   this.fechaInicio = new Date();&lt;br /&gt;   this.fechaFin    = null;&lt;br /&gt;   &lt;br /&gt;   QuarzMB job = new QuarzMB();&lt;br /&gt;   job.iniciarEjemploJob_01( this.fechaInicio, this.fechaFin );  &lt;br /&gt;   //job.iniciarEjemploJob_02( this.fechaFin );  &lt;br /&gt;   //job.iniciarEjemploJob_03( this.fechaInicio, this.fechaFin );  &lt;br /&gt;  } &lt;br /&gt;  catch( Exception e ){&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;strong&gt;4.-&lt;/strong&gt; Por ejemplo la salida al ejecutarce el &lt;strong&gt;Ejemplo #1&lt;/strong&gt; se darìa cada 5 segundos y serìa la siguiente &lt;strong&gt;(En realidad no se envìa los emails, pero si dentro de dicho mètodo se hace una funcionalidad de envìo de emails funcionarà sin problema)&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;br /&gt;------------- ['2009-06-01 23:19:20'] JOB Ejecutado ------------&lt;br /&gt;******* DENTRO DE 'envioAlertaProceso_01()' *******&lt;br /&gt;Enviando Email...#0 [cesarricardo_guerra19@hotmail.com] a Cesar Ricardo&lt;br /&gt;Enviando Email...#1 [magaly_027@hotmail.com] a Catherine Magaly&lt;br /&gt;Enviando Email...#2 [i220051@cibertec.edu.pe] a Milko Samame&lt;br /&gt;&lt;br /&gt;------------- ['2009-06-01 23:19:25'] JOB Ejecutado ------------&lt;br /&gt;******* DENTRO DE 'envioAlertaProceso_01()' *******&lt;br /&gt;Enviando Email...#0 [cesarricardo_guerra19@hotmail.com] a Cesar Ricardo&lt;br /&gt;Enviando Email...#1 [magaly_027@hotmail.com] a Catherine Magaly&lt;br /&gt;Enviando Email...#2 [i220051@cibertec.edu.pe] a Milko Samame&lt;br /&gt;&lt;br /&gt;------------- ['2009-06-01 23:19:30'] JOB Ejecutado ------------&lt;br /&gt;******* DENTRO DE 'envioAlertaProceso_01()' *******&lt;br /&gt;Enviando Email...#0 [cesarricardo_guerra19@hotmail.com] a Cesar Ricardo&lt;br /&gt;Enviando Email...#1 [magaly_027@hotmail.com] a Catherine Magaly&lt;br /&gt;Enviando Email...#2 [i220051@cibertec.edu.pe] a Milko Samame&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Para un mejor entendimiento del manejo de este Framework, puedes descargar el proyecto 'Eclipse' completo: &lt;a href="http://rapidshare.com/files/382492899/Manejo_Quarz.zip" target="_blank" &gt;AQUI.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-8865856411052719137?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/8865856411052719137/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=8865856411052719137' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/8865856411052719137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/8865856411052719137'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/06/automatizacion-de-procesos-con-quarz.html' title='AUTOMATIZACIÒN DE PROCESOS CON &apos;QUARZ&apos;'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-4128425581013742839</id><published>2009-05-09T19:34:00.001-07:00</published><updated>2009-05-09T19:48:33.100-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Validaciones con Hibernate Annotations &amp; RichFaces</title><content type='html'>Explorando una forma nueva de realizar las validaciones, comence a indagar como podria realizarlo por medio de Anotaciones con el Framework &lt;strong&gt;'Hibernate'&lt;/strong&gt; y bueno probando resulto el demo preparado a continuaciòn.  &lt;br /&gt;&lt;br /&gt;Este demo esta realizado en &lt;strong&gt;Eclipse, Maven y RichFaces&lt;/strong&gt; (Para el acceso a las anotaciones, mediante uno de sus controles). Para los que no puedan correr la aplicacion por medio de Maven, aqui esta un muy buen &lt;a href="http://viviendoconjavaynomoririntentandolo.blogspot.com/search/label/Maven" target="_blank" &gt;tutorial descargable.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para descargar la aplicaciòn demo pulsar:&lt;br /&gt;&lt;a href="http://rapidshare.com/files/231195738/HibernateValidator_MavenRichFaces.zip" target="_blank" &gt;Aquì.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-4128425581013742839?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/4128425581013742839/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=4128425581013742839' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/4128425581013742839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/4128425581013742839'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/05/validaciones-con-hibernate-annotations.html' title='Validaciones con Hibernate Annotations &amp; RichFaces'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-238987768568785483</id><published>2009-05-03T20:58:00.000-07:00</published><updated>2011-08-14T19:31:02.010-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applet'/><category scheme='http://www.blogger.com/atom/ns#' term='Jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='SERVLET'/><title type='text'>Integraciòn JSF - Applet - Servlet</title><content type='html'>Hola como estan, hace unos dìas estaba trabajando y surgiò la necesidad de realizar una implementaciòn de un sistema y integrar &lt;strong&gt;2 logicas de programaciòn distintas (Aplicacion J2SE y J2EE)&lt;/strong&gt;, para ello sabia que tenia que relizarlo mediante applets incrustados dentro de la aplicaciòn oreintada a web. Pero, lo que deseaba hacer es que trabaje en el servidor, una tranferencia de datos que tenia que hacer mediante un formulario, y como el applet no trabaja en el servidor mismo sino en el cliente, tube que indagar formas diferentes formas de conectar estas 2 logicas de trabajo y encontre una par de formas de hacerlo:&lt;br /&gt;&lt;br /&gt;Mediante una conexion de la aplicacion web, enviandole aparametros al applet y este a su vez conectandoce con el servlet &lt;strong&gt;(Que hara lo que tenga que hacer en el servidor: guardar en base de datos, guardar una imagen en disco, etc)&lt;/strong&gt; para que luego este servlet regrese un mensaje de confirmacion entre otras cosas y estas se muestren en la aplicacion web. Todo esto es apreciado en algunos ajemplos que preparè.&lt;br /&gt; &lt;br /&gt;Para visualizar como luce la aplicaciòn pulsar:&lt;br /&gt;&lt;a href="http://picasaweb.google.com/maktup2008/AppletServlet#5331812743713552642" target="_blank" &gt;Aquì.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para descargar la aplicaciòn demo online pulsar:&lt;br /&gt;&lt;a href="http://www.megaupload.com/?d=YC7SPM39" target="_blank" &gt;Aquì.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hasta una nueva oportunidad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-238987768568785483?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/238987768568785483/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=238987768568785483' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/238987768568785483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/238987768568785483'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/05/integracion-jsf-applet-servlet.html' title='Integraciòn JSF - Applet - Servlet'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-1766320003760566328</id><published>2009-04-30T21:47:00.000-07:00</published><updated>2011-08-14T20:48:20.777-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='J2EE'/><category scheme='http://www.blogger.com/atom/ns#' term='JMF'/><category scheme='http://www.blogger.com/atom/ns#' term='BLOB'/><title type='text'>Integracion 'J2EE - JMF - BLOB'  en 3 Motores de Datos Distintos.</title><content type='html'>Hola como están, en esta oportunidad estoy presentando un demo que muestra la  integración de &lt;strong&gt;J2EE + JMF + BLOB (Archivos)&lt;/strong&gt; en 3 diferentes motores de datos. La idea de este demo surgió hace un par de semanas ya que en mi ex-trabajo aparecieron los requerimientos de hacer un sistema que manejara un control de WebCam en tiempo real dentro de la misma aplicación web y yo buscando me encontré con JMF que permitía hacer todo esto y mas ya que es un API para manejo de multimedia, luego surgió otro requerimiento que las imágenes que para la webcam sean en guardadas no en una ruta del servidor sino en la misma BD. Y esto fue un problema ya que no todos los motores de datos manejan la misma clase para guardar el archivo BLOB. Y finalmente recuperar la imagen guardada y mostrarla. Bueno lo anteriormente explicado salio finalmente exitoso y me dio la idea de ir un poco más y preparar un demo como este:&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt; &lt;strong&gt;EXPLICACIÒN: &lt;/strong&gt; &lt;/font&gt; &lt;br /&gt;La aplicación que he desarrollado y continuación explicare esta basada en &lt;strong&gt;J2EE, JMF, JSF (Tomahawk, Sandbox, Richfaces)&lt;/strong&gt;, trabaja con 3 motores de datos simultaneamente &lt;strong&gt;( MySql, Postgres y Oracle )&lt;/strong&gt; y fue desarrollado en la IDE: &lt;strong&gt;'Red Hat Developer Studio'( Que es un Eclipse v3.3 mejorado )&lt;/strong&gt;. Esta aplicación en si consta de 3 demos:&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;strong&gt;1er Demo: Búsqueda BLOB 'Applet-Servlet'&lt;/strong&gt;&lt;/font&gt;, donde se aplica una lógica de programación basada en &lt;strong&gt;'Applet-Servlet'&lt;/strong&gt; y muestra un ambiente de consulta para obtener el objeto que trae consigo a mostrar el archivo guardado en la BD  como blob. Para la consulta hay que escoger el código del registro y tipo de archivo que se obtendrá de la BD y que ya esta guardada como tipo de dato &lt;strong&gt;(Imagen, Música, Video, Documento)&lt;/strong&gt;. Esto será validado al momento de obtener dicho archivo para dependiendo de eso mostrarse en el navegador, en un &lt;strong&gt;Applet JMF ( Como 'Control Imagen' o Como 'Reproductor' )&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;strong&gt;2do Demo: Búsqueda BLOB 'Jsf-Servlet'&lt;/strong&gt;&lt;/font&gt;, donde se aplica una lógica de programación basada en &lt;strong&gt;'Jsf-Servlet'&lt;/strong&gt; y muestra un ambiente de consulta para obtener el objeto que trae consigo a mostrar el archivo guardado en la BD  como blob. Para la consulta hay que escoger el código del registro y tipo de archivo que se obtendrá de la BD   y que ya esta guardada como tipo de dato &lt;strong&gt;(Imagen, Música, Video, Documento)&lt;/strong&gt;. Esto será validado al momento de obtener dicho archivo para dependiendo de eso mostrarse en el navegador, mediante un Servlet que utiliza un clase que desarrollé llamada &lt;strong&gt;'ManejoContentType'&lt;/strong&gt; que lee la extensión del archivo obtenido y automáticamente retorna el tipo de &lt;strong&gt;ContentType&lt;/strong&gt; respectivo para que el Servlet retorne en el response.&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;strong&gt;3er Demo: Demo Mantenimiento BLOB&lt;/strong&gt;&lt;/font&gt;, donde se muestra un &lt;strong&gt;mantenimiento completo (CRUD)&lt;/strong&gt;, utilizando las lógicas explicadas anteriormente.&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;&lt;strong&gt;4to Demo:&lt;/strong&gt; &lt;/font&gt; Este demo no es propio de la aplicación web pero es importante ya que muestra el manejo de BLOB ejecutando una clase &lt;strong&gt;descomentando y comentando métodos (CRUD)&lt;/strong&gt;, dicha clase esta ubicada en:  &lt;strong&gt;'Manejo_Java_BLOB\src\org\java\main\Main.java'&lt;/strong&gt;, recuerda que para la ejecución de esta clase se tiene que haber hecho previamente &lt;font color="#FFFF99" &gt;&lt;strong&gt;'Configuración Previa'&lt;/strong&gt; &lt;/font&gt; y que luego de ejecutar los 4 métodos CRUD de la clase en orden, se tiene que copiar nuevamente el contenido de: &lt;strong&gt;'Manejo_Java_BLOB\fuentes\imagenesPrueba'&lt;/strong&gt; en:  &lt;strong&gt; 'C:\Imagenes'&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Para visualizar como luce la aplicación pulsar: &lt;br /&gt;&lt;a  href=" http://picasaweb.google.com/maktup2008/AplicacionJ2EEJMFBLOB#slideshow"  target="_blank" &gt; &lt;strong&gt;[[ VISUALIZAR ]]&lt;/strong&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt; &lt;strong&gt;CONFIGURACIÒN PREVIA&lt;/strong&gt; &lt;/font&gt; &lt;br /&gt;Para configurar la aplicación hay que tener ya cargada la aplicación en &lt;strong&gt;'Red Hat Developer Studio&lt;/strong&gt; o en &lt;strong&gt;Eclipse v3.3&lt;/strong&gt;. Luego hay que ver a cual de los 3 motores de datos que soporta la aplicación nos vamos a conectar, esto al igual que los paràmetros de conecciòn son configurables en el archivo: &lt;strong&gt;'Manejo_Java_BLOB\src\org\java\conexion\jdbc.properties' &lt;/strong&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt;( 1=MySql, 2=Postgres, 3=Oracle )&lt;/font&gt;. &lt;br /&gt;(Si tenemos los 3 motores de datos podemos acceder a los 3, alterando el archivo .properties y reiniciando el servidor para cada acceso), para la manipulaciòn de los datos de tipo BLOB, de en los 3 motores de datos, podemos usar esta muy buena herramienta &lt;strong&gt; DbVisualizer v6.5.1 &lt;/strong&gt;. Luego, hay que crear  la carpeta &lt;strong&gt;'C:\Imagenes'&lt;/strong&gt; y hay que pegar el contenido de &lt;strong&gt;'Manejo_Java_BLOB\fuentes\archivosBlob'&lt;/strong&gt; y de &lt;strong&gt;'Manejo_Java_BLOB\fuentes\imagenesPrueba'&lt;/strong&gt; ahí dentro (Estos serán los archivos que serán grabados como BLOB en los registros de prueba ). Después, ejecutaremos los scripts que serán soportados en los motores de datos, para ello accederemos a la ruta &lt;strong&gt;'Manejo_Java_BLOB\fuentes\bd\ScriptBD.txt'&lt;/strong&gt;, dentro están los scripts para crear las   tablas, secuenciales y inserts respectivos por motor de datos.  Finalmente, Instalar la &lt;strong&gt;plataforma JMF v2.1&lt;/strong&gt; y luego el &lt;strong&gt;Plugin MP3 v3.1.0&lt;/strong&gt;.  &lt;strong&gt;(Recuerda que estos tienen que estar relacionados con el JDK o JRE que la aplicación este usando)&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;font color="#FFFF99" &gt; &lt;strong&gt;DESCARGAS: &lt;/strong&gt; &lt;/font&gt;&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.megaupload.com/?d=FOP3EI4J" target="_blank" &gt;Descarga Aplicación Demo Completa.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://viviendoconjavaynomoririntentandolo.blogspot.com/search/label/Herramientas" target="_blank" &gt;Descarga DbVisualizer v6.5.1&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.megaupload.com/?d=MC2B9UPY" target="_blank" &gt;Descarga Plataforma JMF v2.1. &lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.megaupload.com/?d=FMGR3T5R" target="_blank" &gt;Descarga Java MP3 Plugin v3.1.0. &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-1766320003760566328?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/1766320003760566328/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=1766320003760566328' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1766320003760566328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1766320003760566328'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/04/manejo-de-java-jmf-blob-en-3-motores-de.html' title='Integracion &apos;J2EE - JMF - BLOB&apos;  en 3 Motores de Datos Distintos.'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-8961951774000468470</id><published>2009-03-05T09:58:00.000-08:00</published><updated>2009-03-05T11:13:21.777-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jdbc'/><title type='text'>Manejo Conexiones JDBC</title><content type='html'>En esta oportunidad estoy mostrando un documento que muestra los informaciòn importante para el manejo de conexiones JDBC en distintos motores de datos, la informaciòn que he recaudada es la siguiente:&lt;br /&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - Clase Driver: &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - URL de Conexión: &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - Ejemplo URL: &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - Librerìa 'jar': &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - Hibernate Dependency: &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;br /&gt;Las librerìas JBDC de las cuales se a juntado la informaciòn, son de los siguientes motores de datos:&lt;br /&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - DB2 &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - DERBY &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - H2 &lt;/STRONG&gt; &lt;/FONT&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - HSQLDB &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - INFORMIX &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - MySQL &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - ORACLE &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - PostgreSQL &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - SQLSERVER &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;FONT color="#FFFFFF" face="verdana" size="2" &gt;&lt;STRONG&gt; - SYBASE &lt;/STRONG&gt;&lt;/FONT&gt;&lt;br /&gt;&lt;br /&gt;Para descargar el documento con toda la informaciòn anteriormente explicada pulsar: &lt;strong&gt;&lt;font color="#FFFF99"&gt;&lt;a href="http://rapidshare.com/files/205727065/Conexiones_JDBC.doc" target="blank" &gt;AQUI.&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Para descargar todas las librerias (.JARs) JDBC de todos los motores de datos nombrados pulsar: &lt;strong&gt;&lt;font color="#FFFF99"&gt;&lt;a href="http://rapidshare.com/files/205719050/Drivers_JDBC.zip" target="blank" &gt;AQUI.&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-8961951774000468470?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/8961951774000468470/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=8961951774000468470' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/8961951774000468470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/8961951774000468470'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/03/manejo-jdbc.html' title='Manejo Conexiones JDBC'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-8293999623479081609</id><published>2009-02-27T19:09:00.000-08:00</published><updated>2009-02-27T19:24:14.170-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jsf'/><title type='text'>Validaciones y Mensajes Dinamicos con JSF</title><content type='html'>Aqui muestro una forma muy efectiva de como manejar los Validadores en un Formulario&lt;br /&gt;utilizando el Framework 'JSF', en los casos que se manipulen datos de tipo: &lt;font color="#FFFF99"&gt;'BigDecimal, String, Integer, Date'&lt;/font&gt;. Ademas, muestro tambien una forma de como manipular los &lt;t:messages&gt; de 'JSF' para trabajarlos de forma dinàmica &lt;font color="#FFFF99"&gt;( Estados: INFO, ERROR, WARNING ). &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Para visualizar la Aplicacion demo, donde muestro todo lo explicado anteriormente pulsar: &lt;strong&gt;&lt;font color="#FFFF99"&gt;&lt;a href="http://rapidshare.com/files/203441271/Manejo_Mensajes___ValidacionDinamica_JSF.zip" target="black"&gt;AQUI.&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Porsiaca la Aplicacion demo la desarrolle en la Ide 'Eclipse v3.3'. Y para verlo se puede simplemente importar dicho proyecto desde Eclipse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-8293999623479081609?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/8293999623479081609/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=8293999623479081609' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/8293999623479081609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/8293999623479081609'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/02/validaciones-y-mensajes-dinamicos-con.html' title='Validaciones y Mensajes Dinamicos con JSF'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-6746515307016590409</id><published>2009-01-16T09:54:00.000-08:00</published><updated>2009-01-16T09:59:41.016-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Hibernate Dialect</title><content type='html'>Aqui comparto los diferentes Dialecto que Hibernate utiliza, para su manejo de los diferentes motores de datos. Estos son:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; A.- DB2                   -  org.hibernate.dialect.DB2Dialect &lt;br /&gt;&lt;br /&gt; B.- HypersonicSQL         -  org.hibernate.dialect.HSQLDialect &lt;br /&gt;&lt;br /&gt; C.- Informix              -  org.hibernate.dialect.InformixDialect &lt;br /&gt;&lt;br /&gt; D.- Ingres                -  org.hibernate.dialect.IngresDialect &lt;br /&gt;&lt;br /&gt; E.- Interbase             -  org.hibernate.dialect.InterbaseDialect &lt;br /&gt;&lt;br /&gt; F.- Pointbase             -  org.hibernate.dialect.PointbaseDialect &lt;br /&gt;&lt;br /&gt; G.- PostgreSQL            -  org.hibernate.dialect.PostgreSQLDialect &lt;br /&gt;&lt;br /&gt; H.- Mckoi SQL             -  org.hibernate.dialect.MckoiDialect &lt;br /&gt;&lt;br /&gt; I.- Microsoft SQL Server  -  org.hibernate.dialect.SQLServerDialect &lt;br /&gt;&lt;br /&gt; J.- MySQL                 -  org.hibernate.dialect.MySQLDialect &lt;br /&gt;&lt;br /&gt; K.- Oracle (Any Version)  -  org.hibernate.dialect.OracleDialect &lt;br /&gt;&lt;br /&gt; L.- Oracle 9              -  org.hibernate.dialect.Oracle9Dialect &lt;br /&gt;&lt;br /&gt; M.- Progress              -  org.hibernate.dialect.ProgressDialect &lt;br /&gt;&lt;br /&gt; Ñ.- FrontBase             -  org.hibernate.dialect.FrontbaseDialect &lt;br /&gt;&lt;br /&gt; O.- SAP DB                -  org.hibernate.dialect.SAPDBDialect &lt;br /&gt;&lt;br /&gt; P.- Sybase                -  org.hibernate.dialect.SybaseDialect &lt;br /&gt;&lt;br /&gt; Q.- Sybase Anywhere       -  org.hibernate.dialect.SybaseAnywhereDialect &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/5458598926546072955-6746515307016590409?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/6746515307016590409/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=6746515307016590409' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6746515307016590409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6746515307016590409'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/01/hibernate-dialect.html' title='Hibernate Dialect'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-4461124971977549813</id><published>2009-01-16T07:20:00.000-08:00</published><updated>2009-01-16T07:58:27.980-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jsf'/><title type='text'>COMPARATIVO JSP - JSF</title><content type='html'>En esta oportunidad hablare de un comparativo basico entre JSP y JSF. Ya que a mi  como a la mayoria que ahora trabaja con este Framework les pudo haber pasado, el tratar en entender la logica de trabajo de JSF y seguro querer tratar de trabajarlo como uno estaba acostumbrado a trabajar con JSP. &lt;br /&gt;&lt;br /&gt;Para comenzar JSP trabaja de una conocida forma en base Request/Response por el contrario JSF tiene una logica de trabajo tipo aplicacion Desktop en base a eventos, esto para que el Developer que venga de trabajar en JAVA J2SE al querer migrar a trabajar con J2EE les sea mas facil de entender. Al comienzo para los que ya han tenido un paso por JSP les sera un poco dificultoso la forma de trabajo pero despues les aseguro que mes gustara mucho este framework, esto debido a la cantidad de controles en sus diferentes frameworks que implementan la logica de trabajo de JSF como lo son: "MyFaces,A4j,RichFaces,Jenia Faces,Tomahawk,IceFaces". Todos muy buenos en realidad y o mejor que pueden trabajar de la mano. La unica cosa que hasta ahorita critico a JSF y en lo que pienso que deberian de mejorar lo antes posible es en tratar que sus controles al momento de hacer el Diseño de la Interfaz sean mas amigables ya que por mas que se traba con una buen CSS. Nunca pero nunca una Interfaz en JSF puede lucir de una manera profesional (Pude lucir bien pero profesional nunca) y claro el diseño demora bastante (La difencia en cuanod se trabajaba con HTML puro, que era rapido y frexible ).&lt;br /&gt;&lt;br /&gt;Bueno pero lo que queria hablar desde el comienzo solo me deje llevar, era de como trabajar desde los ManageBean (Que vendria a ser tu Servlet al trabajar con JSF).&lt;br /&gt;al querer mandar y obtener un parametro, un atributo, setear en sesion y simular los tan importantes resquest y response al trabajar con JSF. Bueno aqui les dejo la solucion:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;&lt;FONT COLOR="#FD0101"&gt;I.- SETEAR EN SESION:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;br /&gt;&lt;br /&gt; &lt;STRONG&gt; &lt;FONT COLOR="#0062C4"&gt; A.- JSP: &lt;/FONT&gt; &lt;/STRONG&gt; request.getSession().setAttribute("miVariable",valor);&lt;br /&gt;&lt;br /&gt; &lt;STRONG&gt; &lt;FONT COLOR="#0062C4"&gt; B.- JSF: &lt;/FONT&gt; &lt;/STRONG&gt; FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("miVariable", valor);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;&lt;FONT COLOR="#FD0101"&gt;II.- RECUPERAR LA SESION:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;br /&gt;&lt;br /&gt; &lt;STRONG&gt; &lt;FONT COLOR="#0062C4"&gt; A.- JSP: &lt;/FONT&gt; &lt;/STRONG&gt; request.getSession().getAttribute("miVariable"); &lt;br /&gt;&lt;br /&gt; &lt;STRONG&gt; &lt;FONT COLOR="#0062C4"&gt; B.- JSF: &lt;/FONT&gt; &lt;/STRONG&gt; FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("miVariable");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;STRONG&gt;&lt;FONT COLOR="#FD0101"&gt;III.- RECUPERANDO 'Context, Request, Response':&lt;/FONT&gt;&lt;/STRONG&gt;&lt;br /&gt;&lt;br /&gt; &lt;STRONG&gt; &lt;FONT COLOR="#0062C4"&gt; A.- JSP: &lt;/FONT&gt; &lt;/STRONG&gt; En JSP es automatico al utilizar los Servlet.&lt;br /&gt;&lt;br /&gt; &lt;STRONG&gt; &lt;FONT COLOR="#0062C4"&gt; B.- JSF: &lt;/FONT&gt; &lt;/STRONG&gt; Se tiene que simular el manejo 'Context, Resquest, Response' tanto para el &lt;strong&gt;&lt;em&gt;HttpServlet &lt;/em&gt; o el &lt;em&gt;Servlet&lt;/em&gt;&lt;/strong&gt;, segun se requiera. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;FONT COLOR="#0062C4"&gt; - &lt;/FONT&gt; FacesContext         context    =  FacesContext.getCurrentInstance();&lt;br /&gt;&lt;br /&gt; &lt;FONT COLOR="#0062C4"&gt; - &lt;/FONT&gt; HttpServletRequest   request    =  (HttpServletRequest)context.getCurrentInstance().getExternalContext().getRequest();&lt;br /&gt; &lt;br /&gt; &lt;FONT COLOR="#0062C4"&gt; - &lt;/FONT&gt; HttpServletResponse  response   =  (HttpServletResponse)context.getExternalContext().getResponse();&lt;br /&gt;&lt;br /&gt; &lt;FONT COLOR="#0062C4"&gt; - &lt;/FONT&gt; ServletContext       request2   =  (ServletContext)context.getCurrentInstance().getExternalContext().getRequest();&lt;br /&gt;&lt;br /&gt; &lt;FONT COLOR="#0062C4"&gt; - &lt;/FONT&gt; ServletContext       sContext   =  (ServletContext)context.getExternalContext().getContext();&lt;br /&gt;&lt;br /&gt; &lt;FONT COLOR="#0062C4"&gt; - &lt;/FONT&gt; ServletRequest       sRequest   =  (ServletRequest)context.getExternalContext().getRequest();&lt;br /&gt; &lt;br /&gt; &lt;FONT COLOR="#0062C4"&gt; - &lt;/FONT&gt; ServletResponse      sResponse  =  (ServletResponse)context.getExternalContext().getResponse();&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-4461124971977549813?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/4461124971977549813/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=4461124971977549813' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/4461124971977549813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/4461124971977549813'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2009/01/comparativo-jsp-jsf.html' title='COMPARATIVO JSP - JSF'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-793966777756982731</id><published>2008-12-31T13:51:00.000-08:00</published><updated>2008-12-31T13:54:02.469-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Consolas'/><title type='text'>Comparativa PS3 vs Xbox 360 vs Wii</title><content type='html'>Comparativa PS3 vs Xbox 360 vs Wii&lt;br /&gt;Especial Comparativa PS3 vs Xbox 360 vs Wii&lt;br /&gt;&lt;br /&gt;Comparativa PS3 vs Xbox 360 vs Wii&lt;br /&gt;&gt;&gt; Manuel Sagra |  30/06/2007 13:19:09 &lt;br /&gt;&lt;br /&gt;Ahora que se empiezan a asentar las tres consolas de sobremesa que nos van a acompañar durante unos años, va siendo hora de repasar los defectos y las virtudes de todas ellas, para ver cuál se adapta mejor a nuestros gustos. En cualquier caso este tema es bastante subjetivo y no está exento de polémica, así que intentaremos ser justos e imparciales dentro de lo posible.&lt;br /&gt;&lt;br /&gt;PS3, Wii y Xbox 360&lt;br /&gt;El cerebro de la bestia&lt;br /&gt;&lt;br /&gt;Si nos centramos en "las tripas" de las consolas (procesadores, memoria,...), está claro que hay dos apuestas claramente diferenciadas en esta generación: la potencia bruta (Xbox 360 y Playstation 3), y al aprovechamiento de tecnologías asentadas (Wii). Veamos cada una de ellas con más detalle.&lt;br /&gt;&lt;br /&gt;Playstation 3 es una máquina realmente sorprendente, con el ya famoso procesador Cell a 3.2 GHz: formado por un núcleo central (PPE) basado en PowerPC, y otros seis núcleos llamados SPEs con arquitectura RISC. La memoria principal es de 256 MB, a la que hay sumar la memoria de vídeo -otras 256 MB- que dispone la GPU, basada en el chipset NVIDIA G70 con un reloj a 500 MHz. Aunque todo esto da una capacidad teórica de 2.18 TeraFLOPS, la consola es bastante nueva y compleja de programar -como ya pasó en su día con la Saturn-, y todavía tardaremos en ver juegos que aprovechen su verdadero potencial.&lt;br /&gt;&lt;br /&gt;La Xbox 360 no se queda muy atrás en el apartado técnico, ya que cuenta con la CPU "Xenon" también a 3.2 GHz, compuesta de tres núcleos PowerPC. La memoria es de 512 MB; y está compartida con la GPU -similar al de la tarjeta ATI Radeon 600-, que también corre a 500 MHz como en el caso de la Playstation 3. Esta arquitectura está realmente bien diseñada -aunque sólo llegue a 1 TeraFLOP-, y muchos desarrolladores se sienten más cómodos programando para esta consola... aunque también es cierto que los kits de desarrollo están muy maduros, y Microsoft es una empresa que tiene mucha experiencia en el mundo del software.&lt;br /&gt;&lt;br /&gt;Las tripas de la 360&lt;br /&gt;&lt;br /&gt;Por otra parte, la Wii tiene unas cifras mucho más modestas. La CPU, con el nombre en código de Broadway, no es más que un chip de un sólo núcleo basado en PowerPC -supuestamente a 729MHz-, y la GPU -diseñada por ATI y llamada Hollywood-, corre a 243 MHz. La memoria principal es de 64 MB, a lo que hay que sumar otras 24 MB -para asegurar la compatibilidad con Gamecube- y unos humildes 3 MB auxiliares para guardar texturas. Está claro que la potencia bruta no es la mayor virtud de la Wii, y de hecho Nintendo nunca habla de los datos técnicos cuando presenta su consola. Aún así, es una máquina que todavía no se ha explotado correctamente, ya que los desarrolladores están demasiado cómodos programando como si fuese una Gamecube ligeramente potenciada, y es de esperar que los títulos de segunda generación demuestren el verdadero potencial de la consola.&lt;br /&gt;Leyendo y guardando información&lt;br /&gt;&lt;br /&gt;Mientras que Wii y Xbox 360 tienen una unidad de DVD capaz de leer discos de doble capa, en Sony han apostado por el Blu-Ray -con una capacidad hasta seis veces mayor- para su consola Playstation 3. Esta decisión ha hecho que el precio de esta última máquina se eleve considerablemente, pero a cambio se dispone de serie de un soporte que es uno de los abanderados de la alta definición.&lt;br /&gt;&lt;br /&gt;HD-DVD y Blu-ray&lt;br /&gt;&lt;br /&gt;La Xbox 360 lee DVD-Video sin necesidad de un accesorio extra, y existe una unidad de HD-DVD opcional que permite la reproducción de películas en este formato. Por otra parte, la Wii no puede usarse actualmente para ver nuestros DVDs, aunque en Nintendo han anunciado un modelo que tendrá esta característica gracias a un software adicional.&lt;br /&gt;&lt;br /&gt;Por otro lado, las unidades de Playstation 3 y Wii son slot-in y no emiten demasiado ruido durante la lectura, mientras que en Xbox 360 el lector es de bandeja, y por alguna razón es uno de los factores principales del "particular" ruido que genera la consola durante su funcionamiento.&lt;br /&gt;&lt;br /&gt;La Playstation 3 es la única que incorpora un disco duro por defecto, mientras que en Xbox 360 es opcional. En la Wii se ofrecen 512 MB de almacenamiento interno -en una memoria Flash- para guardar partidas y otros archivos, y también tiene un lector de tarjetas SD en las que se pueden copiar partidas y canales. Estas tarjetas también se pueden utilizar en la Playstation 3, así como Compact Flash y Memory Stick.&lt;br /&gt;&lt;br /&gt;En la Xbox 360 también existe la posibilidad de usar tarjetas de memoria propietarias de hasta 512 MB para guardar partidas y juegos del Bazar. Hay que destacar que son diferentes de las utilizadas en la primera consola de Microsoft, haciendo complicado el utilizar partidas de la Xbox si no se utilizan productos third-party, como por ejemplo los fabricados por Datel. En Wii este problema está resuelto gracias a un par de bahías para las tarjetas de la Gamecube, y en Playstation 3 se vende un adaptador USB para conectar tarjetas de Playstation y Playstation 2.&lt;br /&gt;Espectáculo audiovisual&lt;br /&gt;&lt;br /&gt;Tanto Xbox 360 como Playstation 3 son capaces de llegar a resoluciones de hasta 1080p, mientras que los usuarios de Wii se tienen que conformar con 480p en sus televisiones de alta definición. Nintendo no ha apostado por una calidad visual "revolucionaria" con su consola, a cambio de una experiencia de juego diferente.&lt;br /&gt;&lt;br /&gt;Alta Definición&lt;br /&gt;&lt;br /&gt;Para poder conectar las consolas a nuestros televisores (y monitores), disponen de las siguientes salidas:&lt;br /&gt;&lt;br /&gt;    * Playstation 3: HDMI (o DVI con el adaptador correspondiente), Componentes, RGB, S-Video, AV.&lt;br /&gt;    * Xbox 360: HDMI (en el modelo "Elite" que todavía no ha llegado a Europa), VGA, Componentes, RGB, S-Video, AV.&lt;br /&gt;    * Wii: Componentes, RGB (consolas PAL), S-Video (consolas NTSC), AV&lt;br /&gt;&lt;br /&gt;Se echa de menos la salida VGA de serie en Playstation 3 y Wii, y hay que destacar que el puerto HDMI que traerá Xbox 360 Elite es 1.2, por lo que no se puede disfrutar de Dolby TrueHD ni de DTS-HD Master Audio, unos formatos que sí están presentes en Playstation 3.&lt;br /&gt;&lt;br /&gt;Hablando de formatos de audio, a parte de los mencionados, Xbox 360 y Playstation 3 soportan Dolby Digital (7.1 en caso de la consola de Sony) a través de una salida óptica, mientras que en Wii sólo hay Dolby Pro Logic II mediante la salida stereo por RCA.&lt;br /&gt;Comunicaciones&lt;br /&gt;&lt;br /&gt;Las tres consolas tienen puertos USB 2.0 (Wii tiene dos, Xbox 360 tiene tres y Playstation 3 cuatro), que pueden servirnos para cargar el móvil o conectar diversos periféricos. Las dos últimas también pueden reproducir música, fotos y vídeos en dispositivos compatibles conectados, mientras que en Wii esta característica sólo está disponible si usamos tarjetas SD, quedando la música en MP3 reservada a ciertos juegos como "Excite Truck".&lt;br /&gt;&lt;br /&gt;Dispositivos USB&lt;br /&gt;&lt;br /&gt;Además, Playstation 3 y Xbox 360 pueden reproducir ficheros multimedia por streaming con los últimos firmwares, lo que las convierte en unos aparatos realmente atractivos para tener junto a nuestro televisor.&lt;br /&gt;&lt;br /&gt;Por otra parte, tanto Playstation 3 como Wii soportan Bluetooth, y en la primera, además de para los mandos, se puede utilizar para conectar dispositivos como teclados, ratones, auriculares inalámbricos o el control remoto para las películas en Blu-Ray.&lt;br /&gt;&lt;br /&gt;Las tres se pueden conectar a Internet por Wi-Fi o por cable, teniendo que pagar un extra en el caso de Wii (adaptador Ethernet) y Xbox 360 (adaptador Wi-Fi). En todos los casos, la conexión es bastante sencilla y compatible con la mayoría de los routers del mercado.&lt;br /&gt;&lt;br /&gt;PSP y Nintendo DS tienen una conectividad especial en sus consolas de sobremesa respectivas, aunque en el caso de segunda todavía está por ver hasta dónde se puede llegar. Las consolas de Sony están bastante bien integradas, ya que la PSP se puede utilizar como control remoto, puede utilizar juegos de Playstation bajados de la Store e incluso sirve como espejo retrovisor en algunos juegos de coches.&lt;br /&gt;Controlando la situación&lt;br /&gt;&lt;br /&gt;Esta generación también se ha desmarcado por los mandos de control. La consola más innovadora en este sentido es la Wii, que por una parte se aleja del modelo de pad convencional y por otra vuelve de alguna manera a los orígenes con un diseño similar al que introdujo con la Famicom hace más de veinte años. Este mando inalámbrico sirve como puntero gracias a unos sensores de infrarrojos que se colocan en el televisor, y envía por Bluetooth la información de su movimiento a la consola. Por si fuese poco, incorpora vibración, un pequeño altavoz que reproduce sonidos del juego, y permite conectar accesorios por cable como el nunchako -un control analógico con un par de botones y detección de movimiento- o el mando clásico, ideal para los juegos de la Consola Virtual. También existe la posibilidad de utilizar hasta cuatro pads de Gamecube, para jugar en determinados juegos de Wii o en los juegos de la anterior consola de Nintendo.&lt;br /&gt;&lt;br /&gt;Wii Remote&lt;br /&gt;&lt;br /&gt;Por otra parte, Playstation 3 tiene un pad llamado SixAxis, que de manera similar al de Wii también puede detectar los movimientos en tres dimensiones. El mando es muy parecido al de las consolas anteriores, aunque ha perdido la función de vibración, haciendo que sea bastante ligero. También es inalámbrico, y a diferencia del de la consola de Nintendo se alimenta gracias a una batería interna, que se puede recargar con un cable USB que viene incluído con la consola. También podemos conectar mandos de otras Playstation si contamos con el adaptador USB correspondiente.&lt;br /&gt;&lt;br /&gt;SixAxis&lt;br /&gt;&lt;br /&gt;Por último, Xbox 360 tiene dos tipos de pads a la venta, y también dependen del modelo de la consola que compremos. El modelo Core trae un pad con cable de toda la vida, mientras que el modelo Premium incorpora uno que funciona de manera inalámbrica. El diseño es similar al de la Xbox original, aunque bastante más estilizado y ergonómico. El modelo inalámbrico puede alimentarse con pilas o con una batería, que se recarga con mediante un cable conectado a la consola.&lt;br /&gt;&lt;br /&gt;Pad de la 360&lt;br /&gt;&lt;br /&gt;Es de agradecer que en esta generación todas las consolas tengan la posibilidad de conectar varios mandos para juegos multijugador. En concreto la Wii y la Xbox 360 soportan hasta cuatro, y la Playstation 3 hasta siete... curiosa cifra, por otra parte.&lt;br /&gt;Servicios on-line&lt;br /&gt;&lt;br /&gt;Las tres compañías han apostado por la conexión a Internet y el juego en línea. Sin embargo, hay que admitir que el servicio de Xbox Live! es el más completo de todos, aunque jugar on-line no sea gratis. En cualquier caso, veamos lo que ofrece cada uno de ellos.&lt;br /&gt;&lt;br /&gt;Microsoft apostó desde un principio por el Live!, y si ya era bueno en la primera Xbox, en su última consola lo han mejorado aún más. Por una parte podemos recibir actualizaciones de sistema, incluyendo mejoras en la retrocompatibilidad. Por otra parte, en el Bazar podemos descargar demos, trailers -tanto de juegos como de películas-, contenido extra, y juegos de Live Arcade!. Recientemente también se ha añadido la posibilidad de chatear con Messenger -accesorio de teclado incluído-, y en un futuro está previsto que se descarguen películas y series, y se pueda disfrutar de Televisión por IP. Todo esto se puede hacer con una cuenta gratuita "Silver", pero si queremos jugar on-line, debemos abonar periódicamente una cantidad para tener el servicio "Gold". Hay que destacar que esto no incluye cuotas extras derivadas de juegos tipo multijugador masivo.&lt;br /&gt;&lt;br /&gt;Por otra parte, Sony ha creado la Playstation Network, con una tienda virtual de la que también podemos descargar demos, extras, trailers y juegos, incluyendo algunos títulos de la Playstation original. El servicio es gratuito, incluyendo la posibilidad de jugar on-line con algunos juegos. Actualmente la oferta de juegos que permitan esta posibilidad es baja, y de hecho algunos multiplataforma como "Virtua Tennis 3" sólo se pueden jugar vía Internet en Xbox 360, pero es de esperar que esta situación mejore con el tiempo. También es posible navegar por Internet con un navegador desarrollado por NetFront, aunque el soporte de Javascript y plugins es limitado. Por otra parte, no se puede negar que el panorama de los servicios on-line en esta consola es realmente prometedor, con el "Playstation Home" por bandera, el interesante juego co-operativo "Little Big Planet" o la tienda de canciones del próximo "Singstar".&lt;br /&gt;&lt;br /&gt;Playstation Home&lt;br /&gt;&lt;br /&gt;Wii tiene varios servicios on-line, además de una tienda en la que se pueden descargar algunas aplicaciones y juegos de consolas pasadas -tanto de Nintendo como de SEGA y otras compañías-, en la denominada "Consola Virtual". Actualmente, los canales que utilizan Internet son: el Navegador Web Opera -con Flash y buen soporte de Javascript-, el canal de Noticias, el canal del Tiempo y el canal de Opiniones. La verdad es que la oferta es bastante original, y es bastante probable que Nintendo nos sorprenda en breve con nuevos servicios.&lt;br /&gt;&lt;br /&gt;La forma de pago para los contenidos no gratuitos es distinta según la consola. Tanto en Xbox 360 como en Wii se utiliza un sistema basado en puntos, que pueden comprarse on-line con una tarjeta de crédito o bien mediante tarjetas prepago en diversos puntos de venta. Por otra parte, en Playstation 3 las transacciones se hacen directamente con dinero real en la moneda local de cada región, lo que en un principio es más equitativo, ya que la compra de puntos tiene distinto precio en cada país.&lt;br /&gt;Retrocompatibilidad&lt;br /&gt;&lt;br /&gt;Las tres consolas permiten jugar con juegos de la anterior generación, aunque cada una de forma diferente.&lt;br /&gt;&lt;br /&gt;La Wii es la más completa en este sentido, ya que la compatibilidad es total debido a que tiene una arquitectura interna similar a Gamecube y permite conectar los mandos y tarjetas de memoria de esta última consola. Por otra parte, también podemos jugar por emulación con títulos de Nintendo 64, Super Nintendo y NES gracias a la Consola Virtual, aunque tendremos que pagar de nuevo por ellos aunque tengamos el original.&lt;br /&gt;&lt;br /&gt;Virtual Console&lt;br /&gt;&lt;br /&gt;En el caso de Playstation 3 se ofrece una compatibilidad parcial con juegos de Playstation y Playstation 2, aunque la lista va aumentando a medida que van sacando firmware nuevos. Para alegría y disfrute de muchos, con la última actualización se puede jugar en alta resolución a los juegos de anteriores generaciones. Si ya tenemos mandos y accesorios de consolas anteriores, podemos conectarlos gracias a unos adaptadores USB que se venden aparte.&lt;br /&gt;&lt;br /&gt;Por último, en Xbox 360 necesitamos de disco duro para poder jugar a los juegos de su hermana mayor. Al igual que en la consola de Sony, la lista de compatibilidad va mejorando poco a poco, aunque Microsoft ha afirmado en alguna ocasión que este tema no era especialmente prioritario para ellos.&lt;br /&gt;Lo más importante: los juegos&lt;br /&gt;&lt;br /&gt;Todo lo dicho anteriormente serviría de muy poco si las consolas no estuviesen apoyadas por las compañías productoras de videojuegos. Afortunadamente para todos, las tres consolas tienen una buena oferta, y además se vislumbran títulos realmente prometedores en todos los sentidos. Veamos que nos ofrece cada una de ellas.&lt;br /&gt;&lt;br /&gt;Xbox 360 cuenta con la ventaja de haber salido con varios meses de adelanto, lo que hace que cuente con un catálogo realmente consolidado, con títulos que pasarán a la historia como "Dead Rising", "Lost Planet", "Gears of War", o el reciente "Forza Motorsport 2". Además, el catálogo del Bazar es realmente bueno, con joyas como "Castlevania: Simphony of the Night", "Lumines Live!" o "Geometry Wars". Si a esto le sumamos la potente infraestructura on-line y la posibilidad de probar una gran cantidad de juegos gracias a las demos, se convierte en una apuesta segura.&lt;br /&gt;&lt;br /&gt;Gears of War&lt;br /&gt;&lt;br /&gt;Wii ha sido la segunda en salir, y hay que admitir que la mayoría de los pesos pesados de la consola han salido en los dos primeros meses. "Wii Sports", que viene incluído con la consola, es realmente divertido para jugar con amigos o en familia y para hacerse con el peculiar mando, "The Legend of Zelda: Twilight Princess" es una aventura que realmente merece la pena disfrutar y existen otros títulos como "Excite Truck" o "Mario Strikers: Charged Football" que deben estar en nuestro punto de mira. También hay que tener en cuenta la Consola Virtual, en la que se puede jugar a títulos "Super Mario 64", "Super Castlevania IV" o "The Legend of Zelda: Ocarina of Time" por un módico precio.&lt;br /&gt;&lt;br /&gt;El catálogo de Playstation 3 no es demasiado amplio, aunque hay juegos como "Virtua Fighter 5", "Motorstorm" o "Resistance" que son bastante buenos para ser de "primera hornada". Además, podemos descargar juegos tan curiosos como "flOw" o tan completos como "Tekken 5: Dark Resurrection", sin olvidarnos de demos con una calidad tan sorprendente como "Gran Turismo HD". La verdad es que se nota que esta consola es la más joven, y todavía quedan unos meses para que vengan títulos que demuestren su verdadero potencial.&lt;br /&gt;&lt;br /&gt;En este sentido el panorama no puede ser mejor, ya que va quedando menos para disfrutar de títulos como "GTA IV", "Devil May Cry 4" o "Assassin´s Creed" -por poner unos ejemplos- tanto en Xbox 360 como en Playstation 3. La consola de Microsoft también tiene unas exclusivas muy apetecibles, como "Halo 3", "Bioshock" o "Fable 2", mientras que los usuarios de Playstation 3 disfrutarán en exclusiva de "Heavenly Sword", "Metal Gear Solid 4" -aunque cada vez más voces apuntan que aparecerá también en Xbox 360- o del prometedor "Uncharted: Drake´s Fortune". Wii tampoco se queda atrás, con juegos tan esperados como "Metroid Prime 3: Corruption", "Super Smash Bros. Brawl" o "Super Mario Galaxy".&lt;br /&gt;&lt;br /&gt;Super Mario Galaxy&lt;br /&gt;¿Te has decidido ya?&lt;br /&gt;&lt;br /&gt;Es realmente complicado hablar de todo lo que pueden ofrecer las consolas actuales, ya que han dejado de ser unos sistemas que a lo sumo ofrecían la reproducción de CDs musicales para convertirse en unos aparatos realmente versátiles y completos. Por si fuese poco, la Playstation 3 también pueden convertirse en un ordenador personal -con ciertos límites- al permitir la instalación del sistema operativo GNU/Linux.&lt;br /&gt;&lt;br /&gt;Aunque la decisión debería fundamentarse en el catálogo de cada consola, es difícil dejar de lado estas otras prestaciones, y deberían tenerse en cuenta a la hora de elegir el sistema que nos acompañará durante los próximos años. Por ejemplo, si queremos estar preparados para el vídeo doméstico de alta definición -una batalla que se libra actualmente entre los formatos Blu-ray y HD-DVD-, las consolas de Microsoft y Sony son una buena inversión, aunque hay que tener en cuenta que en el caso de Xbox 360 hay que hacer un desembolso extra.&lt;br /&gt;&lt;br /&gt;En cuanto a los juegos, está claro que hay dos bandos separados. Nintendo ha apostado por la jugabilidad frente al espectáculo gráfico, y parece que inicialmente el público está respondiendo bastante bien, ya que actualmente el número de consolas que vende es superior al de la competencia. También hay que tener en cuenta que muchos desarrolladores -como la propia Ubi Soft ha admitido- han aprovechado la facilidad de desarrollo para sacar al mercado juegos de una calidad muy deficiente, y todavía queda bastante para comprobar lo que puede ofrecer Wii.&lt;br /&gt;&lt;br /&gt;Las otras consolas ofrecen una potencia bruta enorme, y todavía está por ver la teórica superioridad de Playstation 3 en este sentido. Por otra parte, la ventaja temporal de Xbox 360 ha permitido que veamos juegos como "Gears of War", un título que demuestra que la última palabra siempre la tienen los desarrolladores.&lt;br /&gt;&lt;br /&gt;Todo apunta a que la "batalla" va a ser realmente interesante durante los próximos años, y todas las compañías van a tener que ofrecer productos interesantes si quieren ganarse a los usuarios. ¿Con cuál te quedas?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-793966777756982731?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/793966777756982731/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=793966777756982731' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/793966777756982731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/793966777756982731'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2008/12/comparativa-ps3-vs-xbox-360-vs-wii.html' title='Comparativa PS3 vs Xbox 360 vs Wii'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-7596984691810909759</id><published>2008-12-28T14:54:00.000-08:00</published><updated>2008-12-28T15:08:35.232-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GenericDao'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Hibernate GenericDao </title><content type='html'>Hola aqui posteare un ejemplo del manejo de los multiconocidos y muy ùtiles GenericDaos de Hibernate. Tambien, mostrare como acomodar dichos Daos con sus Servicios junto con sus implementaciones respectivas de cada uno. Espero les &lt;br /&gt;paresca interesante.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99"&gt;GenericDAO.java&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;import java.util.Collection;&lt;br /&gt;import java.util.List;&lt;br /&gt;import org.hibernate.Criteria;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * @author Ricardo Guerra&lt;br /&gt; */&lt;br /&gt;public interface GenericDAO{&lt;br /&gt;		&lt;br /&gt;    public void save(Object object);&lt;br /&gt;    &lt;br /&gt;    public void saveObject(Object object);&lt;br /&gt;    &lt;br /&gt;    public void updateObject( Object object );&lt;br /&gt;    &lt;br /&gt;    public void delete(Object persistentInstance);&lt;br /&gt;    &lt;br /&gt;    public Object findById( Class&lt;?&gt; clazz, java.io.Serializable id);&lt;br /&gt;    &lt;br /&gt;	public Object find( Class clazz, Long id );&lt;br /&gt;    &lt;br /&gt;    public List findByObject(Object object);&lt;br /&gt;    &lt;br /&gt;    public List findByExample(Object exampleInstance, String... excludeProperty);&lt;br /&gt;    &lt;br /&gt;    public List findLikeExample(Object exampleInstance, String... excludeProperty); &lt;br /&gt;    &lt;br /&gt;    public List findLikeExampleOrdered(Object exampleInstance, String[] orders,String... excludeProperty);&lt;br /&gt;    &lt;br /&gt;	public List findLikeExampleOrdered (Object exampleInstance, List&lt;String&gt; orders,String... excludeProperty );&lt;br /&gt;     &lt;br /&gt;    public void deleteById(Class&lt;?&gt; clazz, java.io.Serializable id);&lt;br /&gt;    &lt;br /&gt;    public List findAll(Class clazz);&lt;br /&gt;    &lt;br /&gt;    public List findAllClass();&lt;br /&gt;        &lt;br /&gt;    public List getFindCriteria(Object object);&lt;br /&gt;    &lt;br /&gt;    public List getFindCriteria(Object object, String ordenado);&lt;br /&gt;    &lt;br /&gt;    public List getFindCriteria(Object object, String ordenado, String restringe);&lt;br /&gt;    &lt;br /&gt;    public List getFindCriteria(Object object, int maxResults, String ordenado);&lt;br /&gt;    &lt;br /&gt;    public List getFindCriteria(Object object, int maxResults);&lt;br /&gt;        &lt;br /&gt;    public Criteria getCriteria(Object object);&lt;br /&gt;    &lt;br /&gt;    public Criteria getCriteria(Object object, String ordenado);&lt;br /&gt;    &lt;br /&gt;    public void initializeCollection(java.util.Collection collection);&lt;br /&gt;    &lt;br /&gt;    public void initializeCollection2(Collection&lt;?&gt; col);&lt;br /&gt;    &lt;br /&gt;    public void initializeObject(Object o);&lt;br /&gt;    &lt;br /&gt;    public void initialize(Object object);&lt;br /&gt;        &lt;br /&gt;    public String getSequenceNextValue(String sequence );&lt;br /&gt;    &lt;br /&gt;    public boolean exists(Class&lt;?&gt; clazz,java.io.Serializable id);&lt;br /&gt;    &lt;br /&gt;    public void saveCollection(java.util.Collection collection);&lt;br /&gt;    &lt;br /&gt;    public void saveCollection2(java.util.Collection collection);&lt;br /&gt;    &lt;br /&gt;    public void merge(Object object);&lt;br /&gt;    &lt;br /&gt;    public void flush();    &lt;br /&gt;    &lt;br /&gt;    public void setNull(Object obj);    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99"&gt;GenericDAOImpl.java&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;import java.lang.reflect.Field;&lt;br /&gt;import java.lang.reflect.InvocationTargetException;&lt;br /&gt;import java.lang.reflect.Method;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.Collection;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;import java.util.List;&lt;br /&gt;import org.apache.log4j.Logger;&lt;br /&gt;import org.hibernate.Criteria;&lt;br /&gt;import org.hibernate.Hibernate;&lt;br /&gt;import org.hibernate.HibernateException;&lt;br /&gt;import org.hibernate.criterion.Example;&lt;br /&gt;import org.hibernate.criterion.MatchMode;&lt;br /&gt;import org.hibernate.criterion.Order;&lt;br /&gt;import org.hibernate.criterion.Restrictions;&lt;br /&gt;import org.java.model.dao.generic.GenericDAO;&lt;br /&gt;import org.java.model.util.Util;&lt;br /&gt;import org.springframework.orm.hibernate3.HibernateQueryException;&lt;br /&gt;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;&lt;br /&gt;import org.apache.commons.lang.StringUtils;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * @author Ricardo Guerra&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;public class GenericDAOImpl extends HibernateDaoSupport implements GenericDAO{&lt;br /&gt;&lt;br /&gt;	private Logger logger = Logger.getLogger( this.getClass().getName() );&lt;br /&gt;&lt;br /&gt;	&lt;br /&gt;	public GenericDAOImpl(){&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void save(Object object) {&lt;br /&gt;		logger.debug("saving instance");&lt;br /&gt;		try{&lt;br /&gt;			getHibernateTemplate().saveOrUpdate(object);&lt;br /&gt;			logger.debug("save successful");&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void updateObject( Object object ) {&lt;br /&gt;		logger.debug("updating instance");&lt;br /&gt;		&lt;br /&gt;		try{&lt;br /&gt;			getHibernateTemplate().update(object);&lt;br /&gt;			logger.debug("update successful");&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	} &lt;br /&gt;	&lt;br /&gt;	public void saveObject(Object object) {&lt;br /&gt;		logger.debug("saving instance");&lt;br /&gt;		&lt;br /&gt;		try{&lt;br /&gt;			getHibernateTemplate().save(object);&lt;br /&gt;			logger.debug("save successful");&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void delete(Object object) {&lt;br /&gt;		logger.debug("deleting instance");&lt;br /&gt;		&lt;br /&gt;		try{&lt;br /&gt;			getHibernateTemplate().delete(object);&lt;br /&gt;			logger.debug("delete successful");&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public Object findById(Class&lt;?&gt; clazz, java.io.Serializable id) {&lt;br /&gt;		logger.debug("getting instance with id: " + id+" from class: "+clazz.getName());&lt;br /&gt;		&lt;br /&gt;		try{&lt;br /&gt;			Object instance = getHibernateTemplate().get(clazz, id);&lt;br /&gt;			return instance;&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public Object find( Class clazz, Long id ){&lt;br /&gt;        return getHibernateTemplate().load(clazz, id);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;	public List findByObject(Object object) {&lt;br /&gt;		logger.debug("getting instance with id: ");&lt;br /&gt;		&lt;br /&gt;		try {&lt;br /&gt;			return getHibernateTemplate().findByExample(object);&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public List findByExample(Object exampleInstance, String... excludeProperty ){		&lt;br /&gt;		try{&lt;br /&gt;			Criteria criteria = getSession().createCriteria(exampleInstance.getClass());&lt;br /&gt;			Example  example  = Example.create(exampleInstance).ignoreCase();		&lt;br /&gt;			&lt;br /&gt;			for( String exclude : excludeProperty ){&lt;br /&gt;				 example.excludeProperty(exclude);&lt;br /&gt;			}		 &lt;br /&gt;			criteria.add(example);&lt;br /&gt;			&lt;br /&gt;			return criteria.list();&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	public List findLikeExample( Object exampleInstance, String... excludeProperty ){&lt;br /&gt;		try{&lt;br /&gt;			Criteria criteria = getSession().createCriteria( exampleInstance.getClass());&lt;br /&gt;			Example example = Example.create(exampleInstance).enableLike().ignoreCase();&lt;br /&gt;			&lt;br /&gt;			for (String exclude : excludeProperty ){&lt;br /&gt;				example.excludeProperty(exclude);&lt;br /&gt;			}&lt;br /&gt;			criteria.add(example);&lt;br /&gt;			return criteria.list();&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	public List findLikeExampleOrdered(Object exampleInstance, String[] orders,String... excludeProperty){&lt;br /&gt;		&lt;br /&gt;		try{&lt;br /&gt;			Criteria criteria = getSession().createCriteria(exampleInstance.getClass());&lt;br /&gt;			Example example = Example.create(exampleInstance).enableLike().ignoreCase();&lt;br /&gt;			&lt;br /&gt;			for (String exclude : excludeProperty) {&lt;br /&gt;				example.excludeProperty(exclude);&lt;br /&gt;			}&lt;br /&gt;			for (String order : orders) {&lt;br /&gt;				criteria.addOrder(Order.asc(order));&lt;br /&gt;			}&lt;br /&gt;			criteria.add(example);&lt;br /&gt;			&lt;br /&gt;			return criteria.list();&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;&lt;br /&gt;	public List findLikeExampleOrdered (Object exampleInstance, List&lt;String&gt; orders,String... excludeProperty ){&lt;br /&gt;		&lt;br /&gt;		try{ &lt;br /&gt;			Criteria criteria = getSession().createCriteria(exampleInstance.getClass());&lt;br /&gt;			Example example = Example.create(exampleInstance).enableLike().ignoreCase();&lt;br /&gt;			&lt;br /&gt;			for( String exclude : excludeProperty) {&lt;br /&gt;				 example.excludeProperty(exclude);&lt;br /&gt;			}&lt;br /&gt;			for( String order : orders) {&lt;br /&gt;				 criteria.addOrder(Order.asc(order));&lt;br /&gt;			}&lt;br /&gt;			criteria.add(example);&lt;br /&gt;			return criteria.list();&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	private List findByExample(Object exampleInstance, boolean soloActivos, String... excludeProperty) {&lt;br /&gt;		if( !soloActivos ){&lt;br /&gt;			//String [] arr = {"estado"};&lt;br /&gt;			excludeProperty[excludeProperty.length] = "estado";&lt;br /&gt;		}&lt;br /&gt;		return findByExample(exampleInstance, excludeProperty);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void deleteById(Class&lt;?&gt; clazz, java.io.Serializable id) {&lt;br /&gt;		logger.debug("deleting instance with id: " + id+" from class: " + clazz.getName());&lt;br /&gt;		&lt;br /&gt;		try{&lt;br /&gt;			Object object2 = this.findById(clazz, id);&lt;br /&gt;			getHibernateTemplate().delete(object2);&lt;br /&gt;			logger.debug("delete successful");&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public List findAll(Class clazz) {&lt;br /&gt;		logger.debug("getting instances from class : " + clazz.getName());&lt;br /&gt;		List list = null;&lt;br /&gt;		&lt;br /&gt;		try{&lt;br /&gt;			list =  getHibernateTemplate().find("from " + clazz.getSimpleName());&lt;br /&gt;			logger.debug("Find result: " + list.size() + " objects");&lt;br /&gt;			return list;&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	public List findAllClass() {&lt;br /&gt;		logger.debug("getting instances from class ");&lt;br /&gt;		List list = null;&lt;br /&gt;		&lt;br /&gt;		try{&lt;br /&gt;			list =  getHibernateTemplate().find("from Object");&lt;br /&gt;			logger.debug("Find result: " + list.size() + " objects"); &lt;br /&gt;			return list;&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public List getFindCriteria(Object object) {&lt;br /&gt;		List list = null;&lt;br /&gt;		&lt;br /&gt;		try{&lt;br /&gt;			Criteria c = getCriteria(object);&lt;br /&gt;			List list2 = c.list();&lt;br /&gt;			list = new ArrayList(list2);&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateException e ){&lt;br /&gt;			e.printStackTrace();&lt;br /&gt;			throw getHibernateTemplate().convertHibernateAccessException(e);&lt;br /&gt;		}&lt;br /&gt;		logger.debug("Find result: " + list.size() + " objects");&lt;br /&gt;		return list;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public Criteria getCriteria( Object object ) {&lt;br /&gt;		&lt;br /&gt;		 try{&lt;br /&gt;			this.setNull(object);&lt;br /&gt;			&lt;br /&gt;			Criteria criteria = getSession().createCriteria( object.getClass() );&lt;br /&gt;			Example example = Example.create(object).enableLike(MatchMode.ANYWHERE).ignoreCase().excludeZeroes();&lt;br /&gt;			criteria.add(example);&lt;br /&gt;			&lt;br /&gt;			return criteria;		&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public List getFindCriteria(Object object, String ordenado) {&lt;br /&gt;		List list = null;&lt;br /&gt;		&lt;br /&gt;		try{&lt;br /&gt;			this.setNull(object);&lt;br /&gt;			list = (List) getCriteria(object, ordenado).list();&lt;br /&gt;		} &lt;br /&gt;		catch (HibernateException e) {&lt;br /&gt;			e.printStackTrace();&lt;br /&gt;			throw getHibernateTemplate().convertHibernateAccessException(e);&lt;br /&gt;		}&lt;br /&gt;		logger.debug("Find result: " + list.size() + " objects");&lt;br /&gt;		return list;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public Criteria getCriteria(Object object, String ordenado) {&lt;br /&gt;		this.setNull(object);&lt;br /&gt;		Criteria criteria = getCriteria(object);&lt;br /&gt;		criteria.addOrder(Order.asc(ordenado));&lt;br /&gt;		return criteria;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void setNull(Object obj) {&lt;br /&gt;		try{&lt;br /&gt;			if (obj != null) {&lt;br /&gt;				Field fields[] = obj.getClass().getDeclaredFields();&lt;br /&gt;				for (int i = 0; i &lt; fields.length; ++i) {&lt;br /&gt;					fields[i].setAccessible(true);&lt;br /&gt;					if (fields[i].getType().getName().equals("java.lang.Long")) {&lt;br /&gt;						Long valor = (Long) fields[i].get(obj);&lt;br /&gt;						if (fields[i].get(obj) != null&lt;br /&gt;								&amp;&amp; valor.longValue() == 0) {&lt;br /&gt;							fields[i].set(obj, null);&lt;br /&gt;						}&lt;br /&gt;					}&lt;br /&gt;					if (fields[i].getType().getName()&lt;br /&gt;							.equals("java.lang.String")&lt;br /&gt;							|| fields[i].getType().getName().equals(&lt;br /&gt;									"java.util.Date")) {&lt;br /&gt;						if (fields[i].get(obj) != null&lt;br /&gt;								&amp;&amp; fields[i].get(obj).equals("")) {&lt;br /&gt;							fields[i].set(obj, null);&lt;br /&gt;						}&lt;br /&gt;					}&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;		} &lt;br /&gt;		catch (Exception e) {&lt;br /&gt;			logger.error("error al setear null :" + e.getMessage());&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;            &lt;br /&gt;    public void initializeCollection( Collection collection ){	    &lt;br /&gt;    	try{&lt;br /&gt;    		Hibernate.initialize(collection);&lt;br /&gt;	        Iterator it=collection.iterator();&lt;br /&gt;	        &lt;br /&gt;	        while(it.hasNext()){&lt;br /&gt;	            Hibernate.initialize(it.next());&lt;br /&gt;	        }&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public void initialize(Object obj){&lt;br /&gt;        Hibernate.initialize(obj);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public boolean exists(Class&lt;?&gt; clazz,Serializable id){&lt;br /&gt;        return getHibernateTemplate().get(clazz,id)!=null;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public void saveCollection(Collection collection){&lt;br /&gt;        try{&lt;br /&gt;	    	java.util.Iterator it=collection.iterator();&lt;br /&gt;	       &lt;br /&gt;	        while(it.hasNext()){&lt;br /&gt;	            save(it.next());&lt;br /&gt;	        }&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void flush() {&lt;br /&gt;		logger.debug("flush");&lt;br /&gt;		&lt;br /&gt;		try{&lt;br /&gt;			getHibernateTemplate().flush();&lt;br /&gt;			logger.debug("flush successful");&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public List getFindCriteria(Object object, int maxResults,	String ordenado) {&lt;br /&gt;		List list = null;&lt;br /&gt;		&lt;br /&gt;		try{&lt;br /&gt;			Criteria criteria = null;&lt;br /&gt;			this.setNull(object);&lt;br /&gt;			&lt;br /&gt;			if( StringUtils.isEmpty(ordenado)){&lt;br /&gt;				criteria = getCriteria(object);&lt;br /&gt;			}&lt;br /&gt;			else{&lt;br /&gt;				criteria = getCriteria(object, ordenado);&lt;br /&gt;			}    &lt;br /&gt;			criteria.setMaxResults(maxResults);&lt;br /&gt;		    list = (List) criteria.list();&lt;br /&gt;		} &lt;br /&gt;		catch(HibernateException e) {&lt;br /&gt;			logger.error(e.getMessage(), e);&lt;br /&gt;			throw getHibernateTemplate().convertHibernateAccessException(e);&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error(e.getMessage(), e);&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;		logger.debug("Find result: " + list.size() + " objects");&lt;br /&gt;		return list;&lt;br /&gt;	}&lt;br /&gt;	 &lt;br /&gt;	private Criteria getCriteria(Object object, String ordenado, String restringeNull) {&lt;br /&gt;		try{&lt;br /&gt;		    Criteria criteria = getCriteria(object,ordenado);&lt;br /&gt;			&lt;br /&gt;            if(!StringUtils.isEmpty(restringeNull)){&lt;br /&gt;                String[] rn=restringeNull.split(",");&lt;br /&gt;                for(int i=0;i&lt;rn.length;i++){&lt;br /&gt;                    criteria.add(Restrictions.isNull(rn[i]));&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;			return criteria;&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;    public List getFindCriteria(Object object, String ordenado, String restringeNull) {&lt;br /&gt;		List list=(List) getCriteria(object,ordenado,restringeNull);&lt;br /&gt;		return list;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;    public List getFindCriteria(Object object, int maxResults) {&lt;br /&gt;        return getFindCriteria(object,maxResults,null);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;	 * Metodo para obtener el valor siguiente para un secuencia&lt;br /&gt;	 * @param sequence&lt;br /&gt;	 * @return String&lt;br /&gt;	 */&lt;br /&gt;    public String getSequenceNextValue( String sequence ){&lt;br /&gt;    	String resultado = "0" ;&lt;br /&gt;    	String sql = "SELECT " + sequence + ".NEXTVAL FROM DUAL";&lt;br /&gt;    	&lt;br /&gt;    	List result =  getSession().createSQLQuery(sql).list();&lt;br /&gt;		&lt;br /&gt;    	if( Util.collectioEnabled(result) ){&lt;br /&gt;			resultado = String.valueOf(result.get(0));&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;    	return resultado;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void initializeCollection2(Collection&lt;?&gt; col){    	&lt;br /&gt;    	if( col != null ){&lt;br /&gt;	    	Hibernate.initialize(col);&lt;br /&gt;	    	Iterator&lt;?&gt; it=col.iterator();&lt;br /&gt;	    	&lt;br /&gt;	    	while(it.hasNext()){&lt;br /&gt;	    		Object obj = it.next();	    		&lt;br /&gt;	    		initializeObject(obj);&lt;br /&gt;	        }&lt;br /&gt;    	}&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void initializeObject(Object o){&lt;br /&gt;    	Hibernate.initialize(o);    	&lt;br /&gt;    	//Configuration a = new Configuration(); &lt;br /&gt;    	//Iterator i = a.getClassMappings();&lt;br /&gt;    	for( Field campo:o.getClass().getDeclaredFields() ){&lt;br /&gt;    		 Object tr =  new Object();    		&lt;br /&gt;    			&lt;br /&gt;    		    try{&lt;br /&gt;    				Method getter = org.springframework.beans.BeanUtils.findDeclaredMethodWithMinimalParameters(o.getClass(), Util.getNombreGetter(campo));&lt;br /&gt;					if (getter!=null) {&lt;br /&gt;						tr = getter.invoke(o, null);&lt;br /&gt;					}&lt;br /&gt;				} &lt;br /&gt;    			catch (IllegalArgumentException e) {&lt;br /&gt;					e.printStackTrace();&lt;br /&gt;				} &lt;br /&gt;    			catch (IllegalAccessException e) {&lt;br /&gt;					e.printStackTrace();&lt;br /&gt;				} &lt;br /&gt;    			catch (InvocationTargetException e) {&lt;br /&gt;					e.printStackTrace();&lt;br /&gt;				} &lt;br /&gt;			&lt;br /&gt;			Hibernate.initialize(tr);&lt;br /&gt;    	}&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void merge(Object object) {&lt;br /&gt;		logger.debug("saving instance");&lt;br /&gt;		&lt;br /&gt;		try{&lt;br /&gt;			getHibernateTemplate().merge(object);&lt;br /&gt;			logger.debug("merge successful");&lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;    public void saveCollection2(Collection collection){&lt;br /&gt;	     &lt;br /&gt;    	try{&lt;br /&gt;    		java.util.Iterator it=collection.iterator();&lt;br /&gt;	&lt;br /&gt;	        while(it.hasNext()){&lt;br /&gt;	           save(it.next());&lt;br /&gt;	        }   &lt;br /&gt;		} &lt;br /&gt;		catch( HibernateQueryException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		} &lt;br /&gt;		catch( RuntimeException e ){&lt;br /&gt;			logger.error("The Error is: ", e );&lt;br /&gt;			throw e;&lt;br /&gt;		}&lt;br /&gt;    }    &lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99"&gt;GenericService.java&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;import java.util.Collection;&lt;br /&gt;import java.util.List;&lt;br /&gt;import org.hibernate.Criteria;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * @author Ricardo Guerra&lt;br /&gt; */&lt;br /&gt;public interface GenericService{&lt;br /&gt;    &lt;br /&gt;	&lt;br /&gt;    public void save(Object object);&lt;br /&gt;    &lt;br /&gt;    public void saveObject(Object object);&lt;br /&gt;    &lt;br /&gt;	public void updateObject( Object object );&lt;br /&gt;    &lt;br /&gt;    public void delete(Object persistentInstance);&lt;br /&gt;    &lt;br /&gt;    public Object findById( Class&lt;?&gt; clazz, java.io.Serializable id);&lt;br /&gt;    &lt;br /&gt;	public Object find( Class clazz, Long id );&lt;br /&gt;    &lt;br /&gt;    public List findByObject(Object object);&lt;br /&gt;    &lt;br /&gt;    public List findByExample(Object exampleInstance, String... excludeProperty);&lt;br /&gt;    &lt;br /&gt;    public List findLikeExample(Object exampleInstance, String... excludeProperty); &lt;br /&gt;    &lt;br /&gt;    public List findLikeExampleOrdered(Object exampleInstance, String[] orders,String... excludeProperty);&lt;br /&gt;    &lt;br /&gt;	public List findLikeExampleOrdered (Object exampleInstance, List&lt;String&gt; orders,String... excludeProperty );&lt;br /&gt;     &lt;br /&gt;    public void deleteById(Class&lt;?&gt; clazz, java.io.Serializable id);&lt;br /&gt;    &lt;br /&gt;    public List findAll(Class clazz);&lt;br /&gt;    &lt;br /&gt;    public List findAllClass();&lt;br /&gt;        &lt;br /&gt;    public List getFindCriteria(Object object);&lt;br /&gt;    &lt;br /&gt;    public List getFindCriteria(Object object, String ordenado);&lt;br /&gt;    &lt;br /&gt;    public List getFindCriteria(Object object, String ordenado, String restringe);&lt;br /&gt;    &lt;br /&gt;    public List getFindCriteria(Object object, int maxResults, String ordenado);&lt;br /&gt;    &lt;br /&gt;    public List getFindCriteria(Object object, int maxResults);&lt;br /&gt;        &lt;br /&gt;    public Criteria getCriteria(Object object);&lt;br /&gt;    &lt;br /&gt;    public Criteria getCriteria(Object object, String ordenado);&lt;br /&gt;    &lt;br /&gt;    public void initializeCollection(java.util.Collection collection);&lt;br /&gt;    &lt;br /&gt;    public void initializeCollection2(Collection&lt;?&gt; col);&lt;br /&gt;    &lt;br /&gt;    public void initializeObject(Object o);&lt;br /&gt;    &lt;br /&gt;    public void initialize(Object object);&lt;br /&gt;        &lt;br /&gt;    public String getSequenceNextValue(String sequence );&lt;br /&gt;    &lt;br /&gt;    public boolean exists(Class&lt;?&gt; clazz,java.io.Serializable id);&lt;br /&gt;    &lt;br /&gt;    public void saveCollection(java.util.Collection collection);&lt;br /&gt;    &lt;br /&gt;    public void saveCollection2(java.util.Collection collection);&lt;br /&gt;    &lt;br /&gt;    public void merge(Object object);&lt;br /&gt;    &lt;br /&gt;    public void flush();    &lt;br /&gt;    &lt;br /&gt;    public void setNull(Object obj);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#FFFF99"&gt;GenericServiceImpl.java &lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;import java.util.Collection;&lt;br /&gt;import java.util.List;&lt;br /&gt;import org.hibernate.Criteria;&lt;br /&gt;import org.java.model.dao.generic.GenericDAO;&lt;br /&gt;import org.java.model.service.generic.GenericService;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * @author Ricardo Guerra&lt;br /&gt; */&lt;br /&gt;public class GenericServiceImpl implements GenericService{&lt;br /&gt;	&lt;br /&gt;    private GenericDAO genericDAO;&lt;br /&gt;        &lt;br /&gt;    &lt;br /&gt;    //Constructor...&lt;br /&gt;    public GenericServiceImpl(){&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;	public GenericDAO getGenericDAO() {&lt;br /&gt;		return genericDAO;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void setGenericDAO(GenericDAO genericDAO) {&lt;br /&gt;		this.genericDAO = genericDAO;&lt;br /&gt;	}&lt;br /&gt;    &lt;br /&gt;    public void save(Object object){&lt;br /&gt;    	this.genericDAO.save(object);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;	public void saveObject(Object object) {&lt;br /&gt;		this.genericDAO.saveObject( object );			&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void updateObject(Object object) {&lt;br /&gt;		this.genericDAO.updateObject( object );		&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;    public void delete(Object object) {&lt;br /&gt;    	this.genericDAO.delete(object);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;	public Object findById(Class&lt;?&gt; clazz, Serializable id) {		&lt;br /&gt;    	Object obj =  genericDAO.findById(clazz,id);&lt;br /&gt;        return obj;&lt;br /&gt;	}&lt;br /&gt;    &lt;br /&gt;    public Object find( Class clazz, Long id ){    	&lt;br /&gt;    	Object obj =  genericDAO.find(clazz,id);&lt;br /&gt;    	return obj;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public List findByObject(Object object) {&lt;br /&gt;        List lista = (List)genericDAO.findByObject(object);&lt;br /&gt;        return lista;&lt;br /&gt;    }&lt;br /&gt;        &lt;br /&gt;    public List findByExample(Object exampleInstance, String... excludeProperty) {        &lt;br /&gt;        return genericDAO.findByExample(exampleInstance, excludeProperty);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public List findLikeExample(Object exampleInstance, String... excludeProperty) {        &lt;br /&gt;        return genericDAO.findLikeExample(exampleInstance, excludeProperty);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public List findLikeExampleOrdered( Object exampleInstance, String[] orders, String... excludeProperty ){&lt;br /&gt;    	return genericDAO.findLikeExampleOrdered( exampleInstance, orders, excludeProperty);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public List findLikeExampleOrdered( Object exampleInstance, List&lt;String&gt; orders, String... excludeProperty ){&lt;br /&gt;    	return genericDAO.findLikeExampleOrdered( exampleInstance, orders, excludeProperty);&lt;br /&gt;    }   &lt;br /&gt;    &lt;br /&gt;	public void deleteById(Class&lt;?&gt; clazz, Serializable id) {&lt;br /&gt;		this.genericDAO.deleteById(clazz, id);&lt;br /&gt;    }      &lt;br /&gt;    &lt;br /&gt;	public List findAll( Class clazz ){    	&lt;br /&gt;    	List lista =  this.genericDAO.findAll(clazz);&lt;br /&gt;    	return lista;&lt;br /&gt;    } &lt;br /&gt;&lt;br /&gt;	public List findAllClass(){&lt;br /&gt;    	List lista =  this.genericDAO.findAllClass();&lt;br /&gt;    	return lista;&lt;br /&gt;    } &lt;br /&gt;	&lt;br /&gt;	public List getFindCriteria(Object object) {		&lt;br /&gt;        List lista = this.genericDAO.getFindCriteria(object);&lt;br /&gt;        return lista;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public List getFindCriteria(Object object, String ordenado) {		&lt;br /&gt;        List lista = this.genericDAO.getFindCriteria(object,ordenado);&lt;br /&gt;        return lista;&lt;br /&gt;    }    &lt;br /&gt;        &lt;br /&gt;    public Criteria getCriteria(Object object) {&lt;br /&gt;    	Criteria lista = this.genericDAO.getCriteria(object);&lt;br /&gt;        return lista;&lt;br /&gt;    } &lt;br /&gt;    &lt;br /&gt;    public Criteria getCriteria(Object object, String ordenado) {		&lt;br /&gt;    	Criteria lista = this.genericDAO.getCriteria(object, ordenado);&lt;br /&gt;        return lista;&lt;br /&gt;    } &lt;br /&gt;    &lt;br /&gt;    public void setNull(Object obj){		&lt;br /&gt;    	this.genericDAO.setNull(obj);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public void initializeCollection(Collection collection){		&lt;br /&gt;    	this.genericDAO.setNull(collection);&lt;br /&gt;    }    &lt;br /&gt;    &lt;br /&gt;    public void initialize(Object obj){		&lt;br /&gt;    	this.genericDAO.setNull(obj);&lt;br /&gt;    }      &lt;br /&gt;    &lt;br /&gt;    public boolean exists( Class clazz, java.io.Serializable id){		&lt;br /&gt;        return genericDAO.exists(clazz,id);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void saveCollection(Collection collection){		&lt;br /&gt;    	this.genericDAO.saveCollection(collection);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;	public void flush(){&lt;br /&gt;		this.genericDAO.flush();		&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public List getFindCriteria(Object object, String ordenado,String restringe) {&lt;br /&gt;		List lista = this.genericDAO.getFindCriteria(object,ordenado, restringe);&lt;br /&gt;        return lista;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public List getFindCriteria(Object object, int maxResults,	String ordenado) {&lt;br /&gt;		List lista = this.genericDAO.getFindCriteria(object, maxResults, ordenado);&lt;br /&gt;        return lista;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public List getFindCriteria( Object object, int maxResults ){&lt;br /&gt;		List lista = this.genericDAO.getFindCriteria( object, maxResults );&lt;br /&gt;        return lista;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public String getSequenceNextValue( String sequence ){&lt;br /&gt;		String secuencia = this.genericDAO.getSequenceNextValue( sequence );&lt;br /&gt;        return secuencia;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void initializeCollection2(Collection&lt;?&gt; col) {&lt;br /&gt;		this.genericDAO.initializeCollection2(col);		&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void initializeObject(Object obj) {&lt;br /&gt;		this.genericDAO.initializeObject( obj );			&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void merge(Object object) {&lt;br /&gt;		this.genericDAO.merge( object );			&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void saveCollection2(Collection collection) {&lt;br /&gt;		this.genericDAO.saveCollection2( collection );			&lt;br /&gt;	}    &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/5458598926546072955-7596984691810909759?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/7596984691810909759/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=7596984691810909759' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/7596984691810909759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/7596984691810909759'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2008/12/hibernate-genericdao.html' title='Hibernate GenericDao '/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-6513910378357593152</id><published>2008-12-28T14:29:00.000-08:00</published><updated>2009-11-09T19:28:22.363-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Integrando Spring 2.5  &amp;  Hibernate 3 &amp; JSF</title><content type='html'>Hola a todos, hace ya algun tiempo que ya no posteo nada, ya que he &lt;br /&gt;estado bien ocupado ultimamente, por eso motivo regreso aqui para compartirles &lt;br /&gt;una aplicación J2EE demo donde muestro la integración que he realizado de los Frameworks: &lt;strong&gt;&lt;span style="font-style:italic;"&gt;Spring 2.5 &amp; Hibernate 3 &amp; JSF.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;El entorno en la que he trabajo es similar al del demo que postee &lt;br /&gt;hace ya algun tiempo:&lt;br /&gt;&lt;br /&gt;La aplicaciòn demo esta dividida en 2 carpetas: &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-style:italic;"&gt;Demo_Spring_Hibernate_Jsf:&lt;/span&gt;&lt;/strong&gt;  Que contiene todo el Proyecto Web en las carpetas 'src' y 'WebContent'. ( Las cuales las reemplazaras en un proyecto dinamico que crearas desde Eclipse ).  &lt;br /&gt;&lt;br /&gt;Para descargar el demo pulsar: &lt;strong&gt;&lt;font color="#FFFF99"&gt;&lt;a href="http://rapidshare.com/files/177664846/Demo_Spring_Hibernate_Jsf.zip" target="black"&gt;AQUI.&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-style:italic;"&gt;Librerias Demo_Spring_Hibernate_Jsf:&lt;/span&gt;&lt;/strong&gt; Que contiene una carpeta 'lib', con las librerias necesarias para el correcto funcionamiento del sistema.&lt;br /&gt;&lt;br /&gt;Para descargar las librerias necesarias para la aplicacion pulsar: &lt;strong&gt;&lt;font color="#FFFF99"&gt;&lt;a href="http://rapidshare.com/files/193212582/Librerias_Demo_Spring_Hibernate_Jsf.zip " target="black"&gt;AQUI.&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;La aplicacion muestra un simple login en donde se genera una sesion de usuario que redirecciona hacia una interfaz de bienvenida, pero lo realmente interesante es la arquitectura segmentada, que se esta manejando para realizar dicho proceso.&lt;br /&gt;&lt;br /&gt;Espero que les haya gustado la aplicacion demo posteada y ya veremos que mas postear mas adelante.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-6513910378357593152?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/6513910378357593152/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=6513910378357593152' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6513910378357593152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/6513910378357593152'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2008/12/integrando-spring-25-hibernate-3-jsf.html' title='Integrando Spring 2.5  &amp;  Hibernate 3 &amp; JSF'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5458598926546072955.post-1791215413480065014</id><published>2008-11-08T18:39:00.001-08:00</published><updated>2009-11-09T19:28:15.107-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Integrando Spring 2.5  &amp;  Hibernate 3</title><content type='html'>Hola aquí les comparto mi aplicación demo donde muestra la integración que he realizado de los Frameworks: Spring 2.5 &amp; Hibernate 3.  &lt;br /&gt;El entorno en la que he trabajo cuenta con lo siguiente:&lt;br /&gt;&lt;br /&gt;-  IDE:             Red Hat Developer Studio 1.0.0.CR1 &lt;br /&gt;                    &lt;a href="http://www.jboss.com/products/devstudio" target="black"&gt; &lt;font color="red"&gt;(http://www.jboss.com/products/devstudio)&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;                    Que integra un Eclipse 3.3 con una seria de plugins muy útiles como: &lt;br /&gt;                    JBoss Application Server&lt;br /&gt;                    Hibernate Tools&lt;br /&gt;                    JSF Tools, etc. Y un entorno de diseño que para mi es el mejor.&lt;br /&gt;                                    &lt;br /&gt;-  Plataforma:      JAVA 6&lt;br /&gt;-  Frameworks:      Spring 2.5 - Hibernate 3  &lt;br /&gt;-  Motor de Datos:  MySql Server 5.0&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Explicación Ràpida:&lt;/span&gt;&lt;br /&gt;El demo al  ejecutarse muestra el resultado en consola de tres registros devueltos por tres listas y un bean devuelto por un objeto de la base de datos. El demo esta en base a un proyecto JAVA de tipo Web Dinámico, en donde he creado una Arquitectura que permita segmentar correctamente las Capas, Daos y Servicios respectivos. Si bien el demo no lo he hecho para Web (Esta Vez), la arquitectura que se maneja esta preparada para ser utilizada de esta manera (En un próximo demo mostrare ello).&lt;br /&gt;&lt;br /&gt;Aquí estoy utilizando Spring 2.5 para el manejo de la capa de negocio y Hibernate 3 para lo que es la capa de persistencia. Asimismo, se esta manejando los populares y muy útiles Generic Dao. Además, en el  ejemplo se muestra dentro de la clase (UsuarioDAOImpl.java), las diferentes formas de cómo manipular las transacciones en base al manejo de sesiones por medio de Hibernate 3 (métodos: obtenerUsuarioForma01 y obtenerUsuarioForma02) y por medio de Spring 2.5 (método: obtenerUsuarioForma03). Finalmente, la conexión en la aplicación la estoy manejando vía JDBC en base a 2 archivos:&lt;br /&gt;&lt;br /&gt;•  jdbc.properties       (para Spring).&lt;br /&gt;•  hibernate.cfg.xml   (para Hibernate).&lt;br /&gt;&lt;br /&gt;Además, he puesto dentro de la carpeta DataBase el script de la base de datos que estoy utilizando, dentro de la carpeta lib del proyecto todas las librerías necesarias, para que simplemente importen el proyecto, en el Build-Path acomoden el JDK respectivo y listo. Finalmente, hay dos archivos dentro de la carpeta 'Otros':&lt;br /&gt;&lt;br /&gt;• Driver_Url_JDBC:   Muestra los diferentes Drives y URL para conexiones JDBC para diferentes motores de Datos.&lt;br /&gt;• HibernateDialect:  Muestra los diferentes Dialectos Hibernate para diferentes motores de Datos.&lt;br /&gt;&lt;br /&gt;Para descargar la aplicacion Demo, pulsar &lt;span style="font-weight:bold;"&gt;&lt;a href="http://rapidshare.com/files/177664248/Demo_Spring_Hibernate.zip" target="black"&gt;AQUI.&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;Para descargar las librerias base del Demo, pulsar &lt;span style="font-weight:bold;"&gt;&lt;a href="http://rapidshare.com/files/177707144/Liberias_Demo_Spring_Hibernate.zip" target="black"&gt;AQUI.&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Espero que les haya gustado el demo preparado y ya estaré colgando en estos días este mismo ejemplo pero orientado netamente a Web y unido con otro Framework JSF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;CENTER&gt;&lt;FONT color="#CCCCCC" style="font-weight: bold;font-family: Arial;font-size: 12px;" &gt; Foto Aplicacion #1 &lt;/FONT&gt;&lt;/CENTER&gt;&lt;center&gt;&lt;A href="http://www.cuelgalo.com/viewer.php?id=1226206450_Dibujo_01.gif"&gt;&lt;img src="http://www.cuelgalo.com/images/1226206450_Dibujo_01.gif" width="325" height="215"&gt;&lt;/A&gt;&lt;/center&gt; &lt;br /&gt;&lt;br /&gt;&lt;CENTER&gt;&lt;FONT color="#CCCCCC" style="font-weight: bold;font-family: Arial;font-size: 12px;" &gt; Foto Aplicacion #2 &lt;/FONT&gt;&lt;/CENTER&gt;&lt;center&gt;&lt;A href="http://www.cuelgalo.com/viewer.php?id=1226206574_Dibujo_02.gif"&gt;&lt;img src="http://www.cuelgalo.com/images/1226206574_Dibujo_02.gif" width="325" height="215"&gt;&lt;/A&gt;&lt;/center&gt; &lt;br /&gt;&lt;br /&gt;&lt;CENTER&gt;&lt;FONT color="#CCCCCC" style="font-weight: bold;font-family: Arial;font-size: 12px;" &gt; Foto Aplicacion #3 &lt;/FONT&gt;&lt;/CENTER&gt;&lt;center&gt;&lt;A href="http://www.cuelgalo.com/images/1226206654_Dibujo_03.gif"&gt;&lt;img src="http://www.cuelgalo.com/images/1226206654_Dibujo_03.gif" width="325" height="215"&gt;&lt;/A&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5458598926546072955-1791215413480065014?l=frameworksjava2008.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frameworksjava2008.blogspot.com/feeds/1791215413480065014/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5458598926546072955&amp;postID=1791215413480065014' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1791215413480065014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5458598926546072955/posts/default/1791215413480065014'/><link rel='alternate' type='text/html' href='http://frameworksjava2008.blogspot.com/2008/11/integrando-spring-25-hibernate-3-parte1.html' title='Integrando Spring 2.5  &amp;  Hibernate 3'/><author><name>JAVAMAN</name><uri>http://www.blogger.com/profile/09913148950509824567</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_fWM7zHplfWI/StgLIoj3lhI/AAAAAAAAAT4/wysk-sdIj8o/S220/Ricardo+Guerra.jpg'/></author><thr:total>0</thr:total></entry></feed>
