lunes, 31 de marzo de 2008

Servidores

Hoy mi profe ha estado hablando un poco sobre los servidores.
He cogido estos apuntes que ya ire desarrollando,de momento dejo esto:

  • Servidores web-->apache(genera paginas html)
  • Servidor web+contenedor servidor de servlet-->tomca y jettyt
  • SWeb+servidor contenedor servlet+servidor contenedor de aplicaciones-->jboss,glassfish

Proyectos con JBoss y Seam-gen.ERROR al ejecutar

Me ha ocurrido un error mientras ejecutaba mi proyecto,debido a que ejecute las tareas deploy y explode.
Para ello explico como solucionar este error:

El archivo buil.xml tiene dos tareas:
  1. Una de desarrollo(explode)-->que te crea un directorio ear
  2. Una de produccion(deploy)-->que te crea el archivo.ear

Si ejecutamos explode y luego deploy puede darnos un error IOException puesto que estas dos tareas son incompatible,o ejecutas la tarea en modo desarrollo o en modo produccion.

Para solventar este error,hay que para el servidor,hacer un undeploy y unexplode. Y luego ejecutar la aplicacion con una sola de estas tareas.

miércoles, 26 de marzo de 2008

Direcciones de las inyecciones de dependencia con JSF

Los bean se pueden almacenar de 3 formas distintas:


  1. application(mayor ámbito).
  2. session.(2 de mayor ámbito)
  3. request.(es el de menor ámbito)

Hay que tener encuenta que JSF no deja que un bean de menor ámbito se inyecte en un bean de mayor ámbito.

Y tambien para inyectar beans estos deben estar creados.

Pero si se puede inyectar bean de mismo ambitos.

lunes, 24 de marzo de 2008

JavaBeans Vs. EJB’s

Me he liado un poco al ver estas dos cosas porque me ha parecido en un principo que eran casi lo mismo.
He buscado información y he encontrado que no tiene nada que ver uno con lo otro,salvo que los dos son modelos de componentes dentro de una arquitectura JAVA, es decir , elementos de software reusables, codificados en JAVA, y ensamblados luego como bloques para construir aplicaciones.
Veamos sus diferencias:
  • JavaBeans--> define los componentes de arquitectura para la plataforma J2SE (Java 2 Standard Edition).
  • EJB's--> define los componentes de arquitectura para la plataforma J2EE (Java 2 Enterprise Edition).
  • JavaBeans--> se basan el en package java.beans, que esta dentro del JDK.
  • EJB's-->se basan en el package javax.ejb, que pertenece a la extension J2EE.
  • JavaBeans-->son componentes INTRAPROCESO que viven dentro de un espacio de direcciones único, y que, típicamente, se utilizan para manejar aspectos de la interfaz gráfica de usuario, botones, tablas, viewers HTML, etc.
  • EJB's-->son componentes INTERPROCESO, que viven en espacios de direcciones múltiples, como objetos distribuidos.Estos componentes son usados como objetos de negocio en aplicaciones transaccionales, y accedidos en forma remota.Se ejecutan dentro de un container. En cierta forma, los EJB’s se parecen más a los Servlets, que a los JavaBeans.
  • JavaBeans-->son componentes de escritorio.
  • ENB's-->son componentes de Servidores.
Para más información seguid este enlace: http://www.teknoda.com.ar/tips/java/tipja07.pdf

La palabra singleton

Esta palabra quiere decir que de cada bean se crea un sola instancia por cada aplicacion.

Para crear singleton:
*Declaramos una varible con del tipo de la clase poniendole el atributo static
private static ProvinciasUtil singleton;

*ponemos el constructor privado para que no se pueda instanciar la clase.
private ProvinciasUtil() {}

*y nos creamos un método get para ponder acceder a la varible singleton creada.
public static ProvinciasUtil getInstance() {
if(singleton==null) {
singleton = new ProvinciasUtil();
iniciarProvincias();
}
return singleton;
}

SEAM - GEN

Es un framework que facilita el desarrollo con el JB3.Y estandariza la vista JSF y en el modelo los EJB.
Con esta herramienta tenemos varias opciones:
  • setup: Sirve para configurar el proyecto. Te pregunta entre otras cosas el directorio de instalación de JBoss, si quieres desplegar un archivo war (sin EJBs) o un ear (con EJBs), el nombre del paquete donde irán las clases, y parámetros de la conexión con la base de datos.
  • new-project: Crea un proyecto para eclipse con todas las dependencias y la configuración básica a partir de los datos proporcionados a través del setup.
  • update-project: Actualiza el proyecto con las últimas dependencias.
  • delete-project: borra el proyecto
  • deploy: Despliega el proyecto y el datasource en JBoss
  • undeploy: Replega el proyecto y el datasource.
  • explode: Desplega el proyecto y el datasource en JBoss como una estructura de ficheros, sin empaquetar.
  • restart: Resetea el proyectodesplegado con ”explode”
  • unexplode: Replega el proyecto y el datasource desplegado con ”explode”
  • new-action: Crea un nuevo Stateless Session Bean con su correspondiente interface y sus anotaciones.
  • new-form: Crea un nuevo Stateful Session Bean con su correspondiente interface y sus anotaciones.
  • new-conversation: Crea un nuevo Stateful Session Bean con su correspondiente interface y sus anotaciones. Añade anotaciones y esqueletos de métodos para trabajar con Tasks. También crea una clase de Test que puede usarse para simular el ciclo de petición/respuesta de JSF.
  • new-entity: Crea un nuevo Entity Bean con sus anotaciones.
  • generate-entities: Genera Entity Beans a partir de un modelo existente en la base de datos

viernes, 14 de marzo de 2008

¿Qué son los JSP?

Los Jsp son en realidad servlets.
Cuando se compila un Jsp se crea una clase java que se ejecuta en el servidor como los servlets.
Hay una diferencia entre los Jsp y los servlets y es en el enfoque de la programacion,un JSP es una página Web con etiquetas especiales y código Java incrustado, mientras que un servlet es un programa que recibe peticiones y genera a partir de ellas una página web

miércoles, 12 de marzo de 2008

Inyección de Dependencia

También llamada Inverse of Control,se utiliza para evitar la excesiva creación de objetos de manera innecesaria que puede provocar la caida del servidor.Esto se suele utilizar con objetos DAO que crean una conexión a la BD ya que si cada usuario crea una conexión a la BD y el número de usuarios es alto pueden hacer que el servidor se caiga.

La inyección de dependencias q actua generando los objetos cuando se arranca la aplicación y luego los inyecta en los demás objetos que los necesiten a través de métodos set o bien a través del constructor, pero estos objetos se instancian una vez, se guardan en una factoría y se comparten por todos los usuarios (al menos en el caso de Spring) y nos evitamos tener que andar extendiendo clases o tumbar el servidor de la BD.

Spring soporta inyección de dependencias a través del constructor y a través de métodos set pero se aconseja hacerlo a través de métodos set.

En conclusion :
  • Se utiliza para no tener que crear el objecto siempre cada que creemos el servicio.
  • El mismo objeto creado puede ser usado por varios servicios.
Un Ejemplo:

public class Clase {

private Clase2 atributo1;

public Clase(){

}

public void setAtributo1(Clase2 atributo1){

this.atributo1 = atributo1;
}

}

public class Clase2 {—IMPLEMENTACIÓN—}

Declaramos nuestros beans en el contexto de la aplicación< id="atributo1" class="org.mipaquete.bean.Clase2">

< /bean>

< id="atributo" class="org.mipaquete.bean.Clase">

< name=" atributo1" ref="atributo1">
< /bean>


El atributo refhace referencia al id del bean creado así que hay que tener un poco de cuidado con los ids.


Struts

Es un framework para el desarrollo de aplicaciones Web bajo el modelo Modelo-Vista-Controlador.

Struts permite reducir el tiempo de desarrollo. Su carácter de software libre y su compatibilidad con todas las plataformas en que Java Entreprise esté disponible, lo convierte en una herramienta altamente disponible.

lunes, 10 de marzo de 2008

Hibernate asociaciones-relaciones

Aquí tengo un enlace que lo he cogido del blog del profesor.
Documentación de configuración de relaciones de entidades en hibernate utilizando xml
http://www.hibernate.org/hib_docs/reference/en/html/associations.html

Tengo que profundizar más en esto y ya lo iré explicando con mis propias palabras.

Arquitectura orientada a servicios. SOA

Es un tipo de diseño de software que permite reutilizar sus elementos gracias a las interfaces de servicios que se comunican a través de una red con un lenguaje común.

JINI

JavaBeans

Componentes reutilizables e independientes de la plataforma.
El programador que hace el JB no hace nada misterioso, simplemente define una clase, tratando de encapsular (ocultar) su implementación y mostrando al exterior (el programador que usa el bean) solamente los métodos y propiedades que son públicos. Sólo se muestra aquello que forma parte del servicio que el bean ofrece al exterior.

Aqui tengo un enlace de un pagina que lo explica mejor y mas detallado.
http://www.proactiva-calidad.com/java/javabean/index.html

JSF

JSF(JavaServer Faces)--> es un framework de desarrollo basado en el patrón MVC (Modelo Vista Controlador).
La tecnología JSF ofrece una clara separación entre el comportamiento y la presentación de la aplicación.
Al igual que Struts, JSF pretende normalizar y estandarizar el desarrollo de aplicaciones web.
Hay que tener en cuenta JSF es posterior a Struts, y por lo tanto se a nutrido de la experiencia de este, mejorando algunas sus deficiencias.
JSF no puede competir en madurez con Struts (en este punto Struts es claro ganador), pero si puede ser una opción muy recomendable para nuevos desarrollos, sobre todo si todavía no tenemos experiencia con Struts.


Algunos manuales:
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSFPage5.html
http://www.programacion.com/java/tutorial/jsf_intro/5/

JSF incorpora APIs para el desarrollo de interfaz de usuario.
API:
http://java.sun.com/javaee/javaserverfaces/1.1/docs/api/index.html