tag:blogger.com,1999:blog-84501724758874096962024-03-19T01:01:45.106-07:00cea-JesusSubiresJesúshttp://www.blogger.com/profile/13546058177853544985noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-8450172475887409696.post-91861168866277986632008-01-30T15:50:00.000-08:002008-12-09T06:40:28.351-08:00<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcXxSE53AKsLGHeDl8jJ6Fxkxnl60-3ha9SoMZ3Ly8K6pcz8drSYOAvNIYzSMQwtSEa1pafOWpdqKEFS8zp1jwXqHtNzkbfEID6VNAIaNRNnZht7GHUlWLqiGj4o4I3vIzVh0F2esAq1w/s1600-h/Dibujo.jpg"><img id="BLOGGER_PHOTO_ID_5161421815195664098" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcXxSE53AKsLGHeDl8jJ6Fxkxnl60-3ha9SoMZ3Ly8K6pcz8drSYOAvNIYzSMQwtSEa1pafOWpdqKEFS8zp1jwXqHtNzkbfEID6VNAIaNRNnZht7GHUlWLqiGj4o4I3vIzVh0F2esAq1w/s400/Dibujo.jpg" border="0" /></a><br /><div><span style="color:#00cccc;">Las excepciones predefinidas y su jerarquía de clases es la que se muestra en la figura.</span></div><br /><div><br /><span style="color:#00cccc;">Los nombres de las excepciones indican la condición de error que representan. Las siguientes son las excepciones predefinidas más frecuentes que se pueden encontrar:<br /></span></div><br /><div><span style="color:#00cccc;"></span></div><div><span style="color:#00cccc;"></span></div><div><span style="color:#00cccc;"></span></div><div><span style="color:#00cccc;"></span></div><br /><div><span style="color:#00cccc;"><strong>ArithmeticException<br /></strong>Las excepciones aritméticas son típicamente el resultado de una división por 0:</span></div><div><span style="color:#00cccc;">int i = 12 / 0; </span></div><div><br /><span style="color:#00cccc;"><strong>NullPointerException<br /></strong>Se produce cuando se intenta acceder a una variable o método antes de ser definido:</span></div><br /><div><span style="color:#00cccc;">class Hola extends Applet { </span></div><div><span style="color:#00cccc;">Image img; paint</span></div><div><span style="color:#00cccc;">( Graphics g ) { g.drawImage( img,25,25,this ); </span></div><div><span style="color:#00cccc;">}</span></div><div><span style="color:#00cccc;">} </span></div><div><br /><span style="color:#00cccc;"><strong>IncompatibleClassChangeException<br /></strong>El intento de cambiar una clase afectada por referencias en otros objetos, específicamente cuando esos objetos todavía no han sido recompilados. </span></div><div><br /><span style="color:#00cccc;"><strong>ClassCastException<br /></strong>El intento de convertir un objeto a otra clase que no es válida.y = (Prueba)x; // dondex no es de tipo Prueba </span></div><div><br /><span style="color:#00cccc;"><strong>NegativeArraySizeException</strong><br />Puede ocurrir si hay un error aritmético al intentar cambiar el tamaño de un array. </span></div><div><br /><span style="color:#00cccc;"><strong>OutOfMemoryException</strong> </span></div><div><span style="color:#00cccc;">¡No debería producirse nunca! El intento de crear un objeto con el operador new ha fallado por falta de memoria. Y siempre tendría que haber memoria suficiente porque el garbage collector se encarga de proporcionarla al ir liberando objetos que no se usan y devolviendo memoria al sistema. </span></div><div><br /><span style="color:#00cccc;"><strong>NoClassDefFoundException<br /></strong>Se referenció una clase que el sistema es incapaz de encontrar. </span></div><div><br /><span style="color:#00cccc;"><strong>ArrayIndexOutOfBoundsException<br /></strong>Es la excepción que más frecuentemente se produce. Se genera al intentar acceder a un elemento de un array más allá de los límites definidos inicialmente para ese array.<br /><br /></span><span style="color:#00cccc;"><strong>UnsatisfiedLinkException<br /></strong>Se hizo el intento de acceder a un método nativo que no existe. Aquí no existe un método a.kkclass A { </span></div><div><span style="color:#00cccc;">native void kk(); </span></div><div><span style="color:#00cccc;">}<br />y se llama a a.kk(), cuando debería llamar a A.kk(). </span></div><div><br /><span style="color:#00cccc;"><strong>InternalException</strong><br />Este error se reserva para eventos que no deberían ocurrir. Por definición, el usuario nunca debería ver este error y esta excepción no debería lanzarse.</span></div>Jesúshttp://www.blogger.com/profile/13546058177853544985noreply@blogger.com0tag:blogger.com,1999:blog-8450172475887409696.post-83214079424428479652008-01-30T15:08:00.000-08:002008-01-30T15:09:01.680-08:00Repositorio<a href="https://jesus-project.googlecode.com/svn/trunk/">https://jesus-project.googlecode.com/svn/trunk/</a>Jesúshttp://www.blogger.com/profile/13546058177853544985noreply@blogger.com0tag:blogger.com,1999:blog-8450172475887409696.post-57515902898323772512008-01-30T08:55:00.001-08:002008-01-30T15:47:06.796-08:00AOPLa Programación Orientada a Aspectos (POA) es un paradigma de programación relativamente reciente cuya intención es permitir una adecuada modularización de las aplicaciones y posibilitar una mejor separación de conceptos. Gracias a la POA se pueden encapsular los diferentes conceptos que componen una aplicación en entidades bien definidas, eliminando las dependencias entre cada uno de los módulos. De esta forma se consigue razonar mejor sobre los conceptos, se elimina la dispersión del código y las implementaciones resultan más comprensibles, adaptables y reusables. (Fuente: WikiPedia)Jesúshttp://www.blogger.com/profile/13546058177853544985noreply@blogger.com0tag:blogger.com,1999:blog-8450172475887409696.post-5781846492463583612008-01-30T07:49:00.000-08:002008-01-30T15:15:45.483-08:00Servidor de AplicacionesSe trata de un dispositivo de software que proporciona servicios de aplicación a las computadoras cliente. Un servidor de aplicaciones generalmente gestiona la mayor parte (o la totalidad) de las funciones de lógica de negocio y de acceso a los datos de la aplicación. Los principales beneficios de la aplicación de la tecnología de servidores de aplicación son la centralización y la disminución de la complejidad en el desarrollo de aplicaciones.<br />un servidor de aplicaciones J2EE debe proveer los siguientes contenedores para albergar a componentes J2EE:<br /><br />- applet container<br />- aplication Client COntainer<br />- web container<br />- ejb containerJesúshttp://www.blogger.com/profile/13546058177853544985noreply@blogger.com0tag:blogger.com,1999:blog-8450172475887409696.post-37355049598194681162008-01-30T07:19:00.000-08:002008-01-30T08:52:28.603-08:00J2EE<span style="color:#99ffff;">Características Ap. J2EE</span><br /><span style="color:#ff6600;"><strong>Alto rendimiento<br />App. Distribuida y multiusuario<br />Escalable</strong>= granja de servidores( en un momento del programa, si el servidor está sobresaturado, se “clona” a otro servidor adjunto.<br /></span><span style="color:#ff6600;"><strong>Testeable</strong> (podemos hacer pruebas con el)<br /><strong>Gestión Estado<br />Persistencia </strong>(Se entiende por persistencia en la programación orientada por objetos como la capacidad que tienen los objetos de conservar su estado e identidad entre distintas ejecuciones del programa que los creó o de otros programas que accedan a ellos.)<br /><strong>Transacciones<br />Seguridad<br />Interceptores (AOP)<br /></strong><br />- Gestión de estado ≈ ciclo de vida componentes<br />o Inicialización componentes<br />o Inyección dependencias<br />o Mantenimiento estado<br /><br />Esto deriva en varios tipos de EJB<br />- Sesión:<br />o Con Estado (Stateful)<br />o Sin estado (Stateless)<br /><br />Lo que mantiene al servicio con Estado entre llamada y llamada del Bean (un bean es es un componente que tiene la particularidad de ser reutilizable) el componente pasa a estar en estado pasivo, que se escribe en el disco del servidor y se queda guardado, hasta que el usuario lo vuelva a utilizar, lee el disco y lo vuelve a preparar y lo deja en el estado en el que estaba.<br />Para que esto pase, tenemos que implementar la interfaz Serializable.<br />Si alguien llama a un sin estado lo llama, se crea un (x ejemplo) nuevo usuario y su durabilidad lo mantiene durante la sesión de usuario. Si está creado pero en desuso, y lo requiere otro usuario no se crea, si no se utiliza lo destruye el recolector de basuras.</span>Jesúshttp://www.blogger.com/profile/13546058177853544985noreply@blogger.com0tag:blogger.com,1999:blog-8450172475887409696.post-28884439787185464902008-01-29T11:20:00.000-08:002008-01-30T15:29:56.696-08:00OOPLa Programación Orientada a Objetos es un sistema de Programación para diseñar aplicaciones y programas para el ordenador, sistema en el que se basa la programación JAVA., en el que se trata a todo como objeto, al que se le pueden implementar unas determinadas características y unos determinados métodos.Jesúshttp://www.blogger.com/profile/13546058177853544985noreply@blogger.com0tag:blogger.com,1999:blog-8450172475887409696.post-71938686407363912152008-01-29T10:21:00.000-08:002008-01-29T10:40:14.744-08:00EasyMock<span style="color:#ffffcc;">EasyMock es una libreria muy util para hacer pruebas unitarias con JUnit. Nos sirve para crear cualquier objeto fantasma (mock) y hacer que devuelva un resultado concreto para una entrada concreta.<br />Por ejemplo, si queremos probar un servicio que necesita un DAO para obtener un dato, podemos crear un DAO fantasma (mock) que realice esa funcion y asi librarnos de dependencias y probar el servicio unitariamente.<br />Para usar EasyMock tan solo hay que hacer:</span><br /><span style="color:#ffffcc;">1. Create mock</span> <span style="color:#ffff99;"><span style="font-size:85%;">Tendremos que tener cuidado, al crear las clases que utilicemos con el Mock, ya que tenemos que crear INTRFACES</span><br /></span><span style="color:#ffffcc;">2. Reset Mock<br />3. Expect Mock<br />4. Replay Mock<br />5. Verify Mock</span>Jesúshttp://www.blogger.com/profile/13546058177853544985noreply@blogger.com0tag:blogger.com,1999:blog-8450172475887409696.post-57245076284231458422008-01-29T10:12:00.000-08:002008-01-29T10:21:11.798-08:00HerenciasLa herencia son propiedades que implementan las clases hijas de las clases padres, es decir, cuando nosotros creamos una clase y a su vez le creamos unos determinados metodos, podemos utilizar dichos métodos desde la clase hija.<br />Pongamos un ejemplo para verlo mas claro:<br />Supongamos que tenemos una familia que compra una casa, los hijos de esa familia pueden tener acceso a la casa. Si el padre compra una televisión, los hijos tambien tendrán acceso a dicha televisión. Eso en java es la Herencia.<br /><br /><strong>public class hijos extends familia{}</strong>Jesúshttp://www.blogger.com/profile/13546058177853544985noreply@blogger.com0tag:blogger.com,1999:blog-8450172475887409696.post-72970390604439000372008-01-22T10:49:00.000-08:002008-12-09T06:40:28.500-08:00TestNG<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirMHp-3FYDfJ2KvXV1kZW6r9KIi0V6kORKIKt18SNzMPwMGjLV8SSdGgkXAGJNy4ZJqDm812yN6O-RhbYxE7FD_pmN69CQJJPlKfSGSAmU_by0vS7BwSfkHi_k91TS5jqu9RNlLsBaOFQ/s1600-h/Instalar.jpg"><img id="BLOGGER_PHOTO_ID_5158380517770556882" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirMHp-3FYDfJ2KvXV1kZW6r9KIi0V6kORKIKt18SNzMPwMGjLV8SSdGgkXAGJNy4ZJqDm812yN6O-RhbYxE7FD_pmN69CQJJPlKfSGSAmU_by0vS7BwSfkHi_k91TS5jqu9RNlLsBaOFQ/s320/Instalar.jpg" border="0" /></a><br /><div>Es una librería para hacer pruebas, a través de etiquetas. ¿Para qué sirve esto?<br />Básicamente sirve para confirmar por nuestra propia cuenta que el código que nosotros escribimos funciona perfectamente y no tiene ningun tipo de error.<br />La instalación debe ser a través de la web, ya que no viene integrado (a dia de hoy 22/01/08) accediendo a su página principal, a través del apartado descargas e importando la librería desde el archivo que hemos descargado.</div>Jesúshttp://www.blogger.com/profile/13546058177853544985noreply@blogger.com0tag:blogger.com,1999:blog-8450172475887409696.post-60259355501460859322008-01-22T10:43:00.000-08:002008-01-22T10:47:58.151-08:00Refactorización<span style="color:#ff6600;">Se trata de aclarar el código de nuestro programa, cambiandole el nombre a clases, interfaces... para que todo lo podamos entender mejor.</span><br /><span style="color:#ff6600;">¿Cómo se hace?</span><br /><span style="color:#ff6600;">Sobre la clase pulsamos Shift, Alt y R y le cambiamos el nombre</span><br /><span style="color:#ff6600;">Eclipse buscará dentro de nuestro código todo lo que estemos renombrando y lo cambiará automáticamente, para que no haya errores de compilación</span>Jesúshttp://www.blogger.com/profile/13546058177853544985noreply@blogger.com0