Manual JEE PDF
Manual JEE PDF
Manual JEE PDF
04
INSTALACION DE UN SERVER DE BD POSTGRES, APACHE 2.0.55+JBOSS 4.0.4 PARA TRABAJO EN UN ENTORNO DE DESARROLLO J2EE CON NETBEANS 6 Y UML BAJO UBUNTU 7.04
INDICE DE CONTENIDOS
1. Apache 2.0.55 1.1. Paquetes necesarios 1.2. Instalacin 2. JDK+JRE+JEE 2.1. 2.2. 2.3. 2.4. 2.5. Archivos necesarios Instalacin de Java Runtime Environment (JRE) Instalacin de Java Development Kit (JDK) Instalacin de Java Enterprise Edition (JEE) Definicin de Variables Globales 4 4 5 6 7 3 3
3. JBOSS 4.0.4 3.1. 3.2. 3.3. 3.4. Referencia rpida Que es mod_jk? Archivos necesarios Integracin con Apache 2.0.55 8 8 8 8
4. Cuentas de Usuario JBOSS 4.1. Creacin de una cuenta 4.2. Modificacin del archivo jboss-service.xml 4.3. Hola Mundo!, aplicacin de prueba 5. PostgreSQL 5.1. 5.2. 5.3. 5.4. 5.5. Librerias necesarias Instalacin Configuracin del usuario postgres y base de datos TEST Conexin de Prueba Configuracion del servidor de Base de Datos 24 24 24 25 26 12 15 16
6. Netbeans 6 + UML 6.1 6.2 6.3 6.4 Creacion Creacion Creacion Creacion de Documentacion de Diagramas de Clase con Ingenieria Reversa independiente de Diagramas de Clases de codigo java desde Diag. de Clases en proyectos existentes 27 28 32 38
7. Netbeans 6 + PostgreSQL 7.1 7.2 7.3 7.4 7.5 Conexion con el servidor de base de datos Crear una tabla Ejecutar codigo SQL Crear una vista Crear una consulta con el editor 41 43 44 46 47
8. Ayuda con posibles problemas 8.1 Ejecucion de comandos 8.2 Lenguaje PLPGSQL 49 49
1.Apache 2.0.55
1.1. Paquetes necesarios Para comenzar la instalacin de apache se requiere de algunas libreras, estas se deben instalar ejecutando los siguientes paquetes:
$ $ $ $ $ $
1.2. Instalacin Una vez instalados estos paquetes entramos al correspondiente directorio va consola y ejecutamos los siguientes comandos como root, el directorio /usr/local/apache2 corresponde al lugar donde deseas instalarlo, en este caso es ese
Una vez ejecutados todos estos pasos deberamos tener el servidor web instalado correctamente, para iniciar el servidor debemos entrar al directorio correspondiente donde instalamos y realizar los siguientes pasos:
Cuando hallamos iniciado el servidor, en nuestro navegador web ingresar la siguiente ruta:
http://localhost http://127.0.0.1
Es bueno sealar tambin que como apache abre el puerto 80, podemos acceder a nuestro servidor de forma interna y externa por medio de nuestra IP local o publica, para la forma publica debemos abrir el puerto en nuestro router.
2.JDK+JRE+JEE
2.1. Archivos necesarios Los archivos necesarios para realizar la instalacin de los paquetes JAVA deben ser descargados de la pagina www.java.sun.com y se deben bajar los instaladores binarios, los nombres de estos son los siguientes:
2.2. Instalacin de Java Runtime Environment (JRE) Solo se deben seguir estos pasos para la correcta instalacin: a) En una terminal, nos vamos a la carpeta donde hemos descargado .bin: $ cd <carpeta> b) Le damos permisos de ejecucin al archivo: $ chmod +x jre-6-linux-i586.bin c) Luego lo instalamos: $ sudo ./jre-6-linux-i586.bin d) Seguimos las instrucciones que van apareciendo en pantalla.
e) Movemos la carpeta creada despus de la instalacin (llamada jre1.6.0) a una ms apropiada, sino existe el directorio jvm lo creamos con sudo: $ sudo mv jre1.6.0 /usr/lib/jvm f) Seteamos el nuevo Java como una de las alternativas de java: $ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jre1.6.0/bin/java 1 g) Ahora seteamos la nueva alternativa como la real de Java: $ sudo update-alternatives --set java /usr/lib/jvm/jre1.6.0/bin/java h) Para comprobar si tenemos la versin 1.6.0, tipeamos en el terminal: $ java -version Despus de esta intruccin, tendr que aparecer algo as: java version 1.6.0 Java(TM) SE Runtime Environment (build 1.6.0-b105) Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode)
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 2.3. Instalacin de Java Development Kit (JDK) a) En un terminal, nos vamos a la carpeta donde hemos descargado .bin: $ cd <carpeta> b) Le damos permisos de ejecucin al archivo: $ chmod +x jdk-6ul-linux-i586.bin c) Luego instalamos: $ sudo ./jdk-6u1-linux-i586.bin d) Seguimos las instrucciones que van apareciendo en pantalla, que son 2 o 3.
e) Movemos la carpeta creada despus de la instalacin (llamada jdk1.6.0_01) a una ms apropiada: $ sudo mv jdk1.6.0_01 /usr/lib/jvm f) Seteamos el nuevo Java como una de las alternativas de Java (todo en la misma linea): $ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_01/bin/java 1 g) Ahora, seteamos la nueva alternativa como la real de Java: $ sudo update-alternatives --set java /usr/lib/jvm/jdk1.6.0_01/bin/java h) Para comprobar si tenemos la versin 1.6.0, tipeamos en terminal: $ java -version
2.4. Instalacin de Java Enterprise Edition (JEE) Via consola solamente entrar al directorio donde se descargo y ejecutar el siguiente comando
$ sudo sh ./java-tools-bundle-update3-beta-linux.sh
Seleccionar los componentes que desean instalar presionando el botn Customize y presionar NEXT para continuar la instalacin y seleccionar directorios de instalacin.
Presionar NEXT y deberemos poder iniciar la instalacin, si seleccionaron instalar el Java System Aplication Server, les aparecer la siguiente ventana en la cual no deben cambiar nada y solamente presionar NEXT para comenzar la instalacin.
la
instalacin
de los
paquetes necesarios
para
el desarrollo de
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 2.5. Definicin de Variables Globales La definicin de estas variables globales es muy importante ya que sern requeridas al memento de ejecutar el servidor JBOSS, para eso debemos ejecutar el siguiente comando y agregar las siguientes lineas al archivo environment.
Agregar las siguientes lineas (el directorio /usr/jvm/ corresponde al lugar donde instalaron los paquetes java). JAVA_HOME=/usr/java/jdk1.6.0_03/ CLASSPATH=/usr/java/jdk1.6.0_03/lib/ Con esto damos por finalizada la instalacin y configuracin de todos los paquetes JAVA necesarios para el desarrollo JEE, a continuacin nos centraremos en realizar la instalacin del servidor JBOSS para poder ejecutar nuestras aplicaciones y poder acceder a ellas de forma local o externa por medio de Apache.
3.JBOSS 4.0.4
3.1. Referencia rapida Revisin rpida de lo que debemos hacer: 1. 2. 3. 4. 5. 6. 7. 8. 9. Descargar mod_jk 1.2.x (http://tomcat.apache.org/download-connectors.cgi) Cambiar la configuracin del Apache para incluir la configuracin del mod_jk. Crear la configuracin del mod_jk Configurar los workers del mod_jk (los que indicaran los nodos que usa el apache) Configurar las ULIs del Apache por medio del mod_jk Reiniciar el Apache Configurar Tomcat Reiniciar JBoss Probar.
3.2. Que es mod_jk? MOD_JK es un conector que permite a nuestro JBOSS interactuar con servidores web como Apache, Netscape, iPlanet, SunOne e incluso IIS. La principal funcionalidad de este mdulo es permitir a servidores de aplicaciones o al servidor JBOSS enlazarse con un servidor web. Este servidor web, tpicamente el servidor HTTP Apache, introduce una mayor gestin en las conexiones de los clientes y mayor la seguridad en las transacciones del sistema. As mismo se puede enlazar varias instancias al servidor web permitiendo as una mayor tolerancia a errores y aligerar la carga en los servidores JAVA.
3.3. Archivos necesarios Para poder iniciar la instalacin requerimos que se descarguen los archivos de sus respectivos sitios web oficiales.
Utilizaremos esta versin de JBOSS debido a que es la mas estable probada, y porque cumple con todos los requerimientos necesarios para el desarrollo de aplicaciones JEE. Adems el modulo mod_jk ke usaremos es el compatible con nuestra versin de apache y no contiene errores.
3.4. Integracin con Apache 2.0.55 Para poder tener xito en la integracin de estos dos servidores se recomienda mucho cuidado en la creacin de los nuevos archivos y en la modificacin de los archivos de configuracin de Apache. PASO #1: Descargar el Apache Una vez descargado e instalado el apache, no se necesita ninguna configuracion especial. Llamaremos APACHE_HOME a la carpeta o directorio donde se encuentra instalado (siendo esta la ruta completa, en mi caso /home/xito/apache2).
PASO #2: Descargar mod_jk 1.2.x (mod_jk-1.2.25-httpd-2.2.4.so) o de la pagina http://apache.freeby.pctools.cl/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.25/i386/ Una vez descargado el archivo mod_jk debemos renombrarlo por mod_jk.so y colocarlo en la carpeta APACHE_HOME/modules.
PASO #3: Configurar Apache para que use modjk APACHE_HOME/conf/httpd.conf agregar las siguientes lineas:
al
final
del
archivo
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 PASO #4: Creamos el archivo modjk con la configuracin. Para esto en la carpeta APACHE_HOME/conf, creamos el archivo mod-jk.conf y colocamos lo siguiente:
# Load mod_jk module # Specify the filename of the mod_jk lib LoadModule jk_module modules/mod_jk.so # Where to find workers.properties JkWorkersFile conf/workers.properties # Where to put jk logs JkLogFile logs/mod_jk.log # Set the jk log level [debug/error/info] JkLogLevel info # Select the log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" # JkOptions indicates to send SSK KEY SIZE # Note: Changed from +ForwardURICompat. # See http://tomcat.apache.org/security-jk.html JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories # JkRequestLogFormat JkRequestLogFormat "%w %V %T" # Mount your applications JkMount /__application__/* loadbalancer # You can use external file for mount points. # It will be checked for updates each 60 seconds. # The format of the file is: /url=worker # /examples/*=loadbalancer JkMountFile conf/uriworkermap.properties # Add shared memory. # This directive is present with 1.2.10 and # later versions of mod_jk, and is needed for # for load balancing to work properly # Note: Replaced JkShmFile logs/jk.shm due to SELinux issues. Refer to # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=225452 JkShmFile run/jk.shm # Add jkstatus for managing runtime data <Location /jkstatus/> JkMount status Order deny,allow Deny from all Allow from 127.0.0.1 </Location>
Ahora el mod_jk esta listo para aceptar peticiones del JBOSS, ahora necesitamos configurar los workers. PASO #5: Configurar workers En la carpeta APACHE_HOME/conf, crear el archivo workers.properties y escribir lo siguiente:
# Define list of workers that will be used # for mapping requests # The configuration directives are valid # for the mod_jk version 1.2.18 and later # worker.list=loadbalancer,status # Define Node1 # modify the host as your host IP or DNS name. worker.node1.port=8009 worker.node1.host=localhost worker.node1.type=ajp13 worker.node1.lbfactor=1 # worker.node1.connection_pool_size=10 (1) # Define Node2 # modify the host as your host IP or DNS name. worker.node2.port=8009 worker.node2.host= localhost worker.node2.type=ajp13 worker.node2.lbfactor=1 # worker.node1.connection_pool_size=10 (1)
10
# Load-balancing behaviour worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=node1,node2 # Status worker for managing load balancer worker.status.type=status
Deben modificar localhost por si IP o DNS eso depende de su configuracion del servidor, pero si el servidor esta en su mismo ekipo dejenlo asi mismo.
PASO #6: Crear los URI crear un archivo que se llame uriworkermap.properties en la carpeta APACHE_HOME/conf
# Simple worker configuration file # # Mount the Servlet context to the ajp13 worker /jmx-console=loadbalancer /jmx-console/*=loadbalancer /web-console=loadbalancer /web-console/*=loadbalancer
Esto configurara el mod_jk para responder peticiones para /jmx-console y /web-console a Apache. PASO #7: Reiniciar el Apache. Si es ke ya tenemos el servicio corriendo debemos detenerlo de la siguiente forma $ sudo APACHE_HOME/bin/apachectl stop de lo contrario lo hacemos correr $ sudo APACHE/bin/apachectl start
PASO #8:
Para completar la configuracion, necesitamos nombrar cada nodo de acuerdo a la configuracin especificada en los workers. Para esto editamos el archivo JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/server.xml (reemplazar /all de acuerdo a la configuracion que estamos ocupando) Buscar la etiqueta <Engine.> y agregar el atributo jvmRoute:
Este nombre debe coincidir con el declarado en el worker que creamos. Adems asegurarse que el esta linea este sin comentario: <! A AJP 1.3 Connector on port 8009 > <Connector port=8009 address=${jboss.bind.address} emptySessionPath=true enableLookups=false redirectPort=8443 protocol=AJP/1.3/>
PASO #10: Activate the UseJK en el JBoss Para esto editamos el archivo JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/METAINF/jboss-service.xml. (reemplazar /all de acuerdo a la configuracion que estamos ocupando) Encontrar la etiqueta <attribute> con el nombre UseJK, y modificamos su valor a true: <attribute name="UseJK">true</attribute> La versin del Tomcat puede ser 50 o 55 depende de la versin del JBOSS que estemos ocupando.
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 PASO #11: Definir variable Global JBOSS_HOME Agregamos la siguiente linea al archivo /etc/environment.
11
PASO #12: Iniciamos JBOSS y Apache o lo hacemos correr de la siguiente forma $ sudo cd /APACHE_HOME/bin/ ./apachectl start $ cd $JBOSS_HOME/bin $ sh ./run.sh Si todo quedo bien configurado deberamos poder entrar por ac http://localhost:8080 http://localhost:8080/web-console/ o http://localhost:8080/ y ver una pantalla como la siguiente.
12
Modificacion del archivo httpd.conf, para activacion de la carpeta public_html Crear usuarios nuevos
Para la modificacion del httpd.con, debemos ingresar al directorio donde instalamos apache que lo llamaremos APACHE_HOME, y modificar el archivo de la siguiente forma:
Y quitamos las almoadillas de #<Directory /home/*/public_html> , por lo que deberia quedar asi:
<Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS PROPFIND> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS PROPFIND> Order deny,allow Deny from all </LimitExcept> </Directory>
Con esto estamos permitiendo que que se puedan revisar los archivos via web de todos los usuarios que crearemos. A continuacin, via consola creamos una nueva carpeta en nuestro $HOME llamada public_html para comprobar que la configuracin quedo correcta y reiniciar nuestro servidor apache para esto realizamos los siguientes pasos.
cd $HOME mkdir public_html cd APACHE_HOME/bin sudo ./apachectl stop sudo ./apachectl start
13
Abrimos nuestro navegador de internet y probamos con la siguiente ruta (en este caso con el usuario jboss1 que es el usuario con el cual estamos realizando la instalacin de nuestro servidor):
http://localhost/~jboss1/
Ahora, como ya tenemos configurado nuestro apache para que se puedan ver los archivos que estan guardados en nuestra cuenta, debemos crear las cuentas de usuario para nuestro servidor JBOSS, para esto, creamos un usuario de forma normal realizando los siguientes pasos:
SISTEMA>ADMINISTRACION>USUARIOS Y GRUPOS
Y le damos click al botn AADIR USUARIO, lo que nos permitira ingresar uno nuevo
14
Ingresamos los datos que nos solicita y su respectiva contrasea, en este caso crearemos el usuario mfabarca:
$ # $ $ $
Si se lo crear de forma correcta deberiamos poder ingresar al contenido de la misma forma que con el usuario jboss1 pero con el nombre mfabarca
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 4.2. Modificacin del archivo jboss-service.xml
15
El servidor JBOSS por defecto solamente escanea un directorio (JBOSS_HOME/server/[conf]/deploy/) donde son almacenadas todas las aplicaciones J2EE, para esto debemos indicarle que no solamente debe escanear esa sino que todas las carpetas de usuarios que utilizan el servidor, para esto primeramente cada usuario deber tener en su public_html un directorio llamado deploy, en el cual almacenaremos nuestras aplicaciones EAR, para que el JBOSS las compile, y podamos verlas a travez de la web. Para esto, debemos realizar las siguientes instrucciones via consola para crear la carpeta deploy y modificar el archivo jboss-service.xml (utilizaremos la configuracion default):
$ # $ $ $ # $ $
sudo bash su - mfabarca cd public_html mkdir deploy exit exit cd $JBOSS_HOME/server/default/conf/ sudo gedit jboss-service.xml
Nos vamos al final del archivo y modificamos el atributo URLs, veremos que solo se encuentra la carpeta deploy, a el deberemos ingresar todas las rutas a la carpeta deploy que se encuentra en el public_html de cada uno de los usuarios, de la siguiente forma, en este caso agregaremos al usuario mfabarca:
Cada url debe ir separada por una coma (,) tal y como aparece ahy, por ejemplo si tenemos 3 usuarios deberian ir asi: <attribute name=URLs> deploy/, file:/home/user1/public_html/deploy/, file:/home/user2/public_html/deploy/, file:/home/user3/public_html/deploy/ </attribute> De esta forma le indicamos que todas esas rutas deben estar siempre en actualizacin. NOTA: La no existencia de estas carpetas producira que no se puedan ni ver los archivos almacenados ni tampoco ver las aplicaciones EAR que necesiten sean vista via web.
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 4.3. Hola Mundo!, aplicacin de ejemplo
16
Para probar que nuestras cuentas funcionan correctamente, debemos crear una pequea aplicacin EAR de ejemplo que llamaremos HolaMundo, para esto abrimos nuestro netbeans que fue instalado cuando instalamos los paquetes bljava necesarios para el desarrollo con J2EE, asi abrimos el menu FILE y elegimos New Project y seleccionamos
En la siguiente pantalla seleccionamos nuestro servidor JBOSS, sino se encuentra, deberemos aadirlo presionando el botn ADD:
Presionamos BROWSE
17
Y buscamos la carpeta donde instalamos el servidor llamada jboss-4.0.4.GA, que en este caso se encuentra en la carpeta /usr/local/ presionando el botn BROWSE
Debido a que JBOSS coloca todas las aplicaciones en un solo lugar, es necesario separar las aplicaciones para cada usuario, para esto, cada vez que creamos un proyecto es necesario indicarle el identificador de cada uno, que en este caso sera el nombre del usuario, para evitar perdidas en las aplicaciones o que se confundan con otras.
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 Esto se debe realizar de la siguiente forma:
18
Colocamos el nombre de la aplicacin normalmente, en este caso el nuestro sera el conocido HOLA MUNDO!
Y procedemos a indicar que nuestro modulo EJB y aplicacin WAR deben quedar en el mismo directorio correspondiente al nombre de usuario, digitandolo de la siguiente forma:
Asi le estamos indicando a nuestro servidor que la aplicacin ejecutada dentro de un directorio correspondiente al nombre del usuario.
debe
ser
almacenada
Ahora es bueno indicar que nuestras aplicaciones EAR estan compuestas de dos partes que son el EJB y el WAR por lo tanto ambos elementos son almacenados en un mismo archivo y compilados juntos, por lo que debemos tener cuidado tambin con los nombres de las aplicaciones EAR que se van creando. Ya creado los 2 modulos de la aplicacn EAR, procedemos a crear un beans de sesion en el HolaMundo-ejb, para ello presionamos con el boton derecho sobre SOURCE PACKAGES y seleccionamos NEW SESSION BEAN y lo creamos como se indica en la figura.
19
A continuacin creamos un nuevo metodo de negocio presionando con el botn derecho sobre el editor de codigo y seleccionamos EJB METHODS> ADD BUSINESS METHOD y creamos un metodo bsico que retorne un String, para eso lo hacemos de la siguiente forma:
Cuando ya este creado, veremos en el editor el mtodo, lo modificamos y lo dejamos de la siguiente forma:
Ahora procedemos a compilar el modulo EJB y a llamar a nuestro beans de sesin desde el modulo WAR. Para eso creamos un nuevo servlet, presionando nuevamente sobre SOURCE PACKAGES esta vez sobre el modulo WAR y seleccionando NEW SERVLET, le damos los datos que tenemos en la figura, y lo creamos.
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 Una vez creado presionamos con el botn derecho sobre el editor y elegimos ENTERPRISE RESOURCES> CALL ENTERPRISE BEAN y veremos nuestro EJB:
20
Lo seleccionamos y presionamos OK, luego modificamos el metodo processRequest y lo dejamos de la siguiente forma, para que pueda ser ejecutado desde un JSP y mostrar el contenido del metodo creado en el EJB.
Cuando este modificado de forma correcta, procedemos a escribir nuestro index.jsp que ser ejecutado cuando iniciemos nuestra aplicacin EAR.
Para ello abrimos el index.jsp que se encuentra en WEB PAGES y digitamos el siguiente codigo HTML, que nos permitira ejecutar el servlet que llama a nuestro EJB de saludo
21
Si todo ha quedado correctamente procedemos a compilar nuestra aplicacin para verla en el navegador de prueba, para ello solamente presionamos sobre nuestra aplicacin Enterprise representada por esta figura:
Presionamos el triangulo con el botn derecho y elegimos Undeploy and Deploy y luego Run, cuando este compilada completamente se abrira nuestro navegador y veremos la aplicacin.
22
Ahora, para que nuestra aplicacin pueda ser visible de forma local o externa debemos, copiar nuestra aplicacin EAR a nuestro correspondiente directorio $HOME/public_html/deploy para que pueda ser compilada desde nuestro servidor JBOSS, para ello entramos al directorio donde creamos nuestra aplicacin que por defecto es:
$HOME/NetBeansProjects/HolaMundo cd dist
Posteriormente procedemos a copiar la aplicacin a nuestro directorio deploy, para ello entramos a:
$HOME/public_html/deploy
Cuando la aplicacin es copiada o movida a esta carpeta automaticamente es compilada en el servidor de aplicaciones JBOSS, y puede ser vista ingresando a nuestro navegador escribiendo el numero de la IP o el nombre de la maquina del servidor ms nuestro nombre de usuario y nombre de la aplicacin WAR.
23
Asi ingresamos a un navegador externo e ingresamos lo siguiente (192.168.5.107 ip de prueba del servidor)
http://192.168.5.107:8080/mfabarca/HolaMundo-war/
Indicamos el puerto 8080 para decir que queremos ejecutar una aplicacin que se encuentra almacenada en el servidor JBOSS. Ahora si adems deseamos ver todos los archivos de nuestra aplicacin, cuando creamos la aplicacin debemos hacerlo en el correspondiente directorio publico ($HOME/public_html) o debemos moverlo desde el directorio creado por defecto a nuestro $HOME/public_html de la siguiente forma:
Finalmente deberiamos poder ver los archivos asi, entrando en nuestro navegador:
http://192.168.5.107/~mfabarca
24
5.PostgreSQL
5.1. Librerias necesarias Para esta instalacion debemos descargar primeramente el tar.gz v8.0.1 de la pagina oficial de postgres www.postgresql.org, luego deberemos instalar las siguientes librerias, que deben ser descargadas directamente de la pagina de ubuntu, o buscarlas via google.
La no instalacin de estas librerias producira errores en la instalacin. 5.2. Instalacin Una vez descargadas e instaladas las librerias necesarias procederemos a instalar postgres, para tener un mayore detalle de la instalacin se puede revisar el manual de instalacion en el archivo INSTALL en la carpeta descomprimida con el codigo fuente, sino procedemos a entrar al correspondiente directorio via consola y ejecutar los siguientes comandos.
$ # # #
Si la instalacion se realiza correctamente podemos pasar al siguiente paso, de lo contrario revisar que todos los paquetes nombrados anteriormente hallan sido instalados. 5.3. Configuracin del usuario postgres y base de datos TEST Para la configuracin del usuario utilizando el siguiente comando. primeramente debemos comprobar que ha sido creado
Si el resultado de la ejecucin es que el usuario ya existe, debemos realizar las siguientes configuraciones para la correcta ejecucin del motor de base de datos.
$ $ $ # $ $
sudo mkdir /usr/local/pgsql/data sudo chown postgres /usr/local/pgsql/data sudo bash su - postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
Una vez realizado estos pasos debemos crear la BD de prueba que llamaremos TEST y modificaremos la contrasea del usuario postgres debido a que en nuestra instalacin se genero una aleatoriamente y deberemos cambiarla por una conocida.
$ /usr/local/pgsql/bin/createdb test $ /usr/local/pgsql/bin/psql test $ alter user postgres with password [nueva contrasena] \q
Con estos pasos realizados, procedemos a realizar nuestra coneccion de prueba, para esto con Synaptic instalamos el pg-admin que nos permitira realizar las conecciones a nuestro motor de base de datos.
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 5.4. Conexin de Prueba
25
Para nuestra conexin de prueba ya debemos tener instalado el pg-admin para ello lo abrimos desde el menu Aplicaciones>Herramientas del Sistema>pgAdmin III, y creamos una nueva conexin con los siguientes datos:
: : : : : :
Si la conexin fue realizada exitosamente veremos la conexin con nuestra BD en la barra lateral izquierda
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 5.5. Configuracion del servidor de Base de Datos
26
Para poder dejar nuestro motor de base de datos como servidor, y que permita conecciones locales y externas, lo primero es encontrar la ubucacion de los siguientes archivos para poder modificarlos:
postgresql.conf pg_hba.conf
Una vez encontrados procederemos a modificar primeramente el archivo postgresql.conf, para eso entramos a su correspondiente directorio y ejecutamos lo siguiente:
trust
trust
Una vez realizados estos cambios reiniciamos el pc y hacemos correr nuestro servidor de BD con los siguientes comandos:
$ $ $ $
Para probar las conecciones externas y locales, solamente colocamos en el pg-admin de una maquina local que tenga instalado el pgadmin la direccion IP de nuestro servidor, si no conoces la IP del servidor de BD digita lo siguiente en un terminarl:
ifconfig
Con esto puedes saber la IP del pc en el que esta instalado tu servidor de base de datos.
27
6.Netbeans 6 + UML
En esta parte bsicamente nos centraremos en dos partes importantes que son
documentacion Diagramas de Clases con ingenieria reversa Diagramas de Clases independientes codigo java a partir de Diagramas de Clases en proyectos existentes
6.1 Creacion de Documentacion Para la creacion de estos, solamente debemos comentar cada uno de los metodos de nuestras clases con las siguientes etiquetas:
Etiqueta @author nombre @version numero_version @param nomParametro DescripcionParametro @return Descripcion @throws nombreExc Descripcion @exception nombre Exc Descripcion
Sirve para indicar la version de nuestra clase. Agrega el nombre y la descripcion de uno de los parametros que ingresa a la funcion o metodo. Descripcion del valor de salida de la funcion o metodo. Agrega el nombre y descripcion de una excepcion que puede ser lanzada en algun momento.
Entonces por ejemplo supongamos que tenemos un metodo con algunos parametros de entrada, deberiamos escribir de la siguiente manera:
Una vez que ya tenemos comentados nuestros metodos procedemos a generar la documentacion de nuestra clase o programa, para esto nos vamos al menu BUILD> Generate Javadoc for... Cuando la documentacion sea generada, podremos verla ingresando al directorio donde seleccionamos, abrimos el archivo index.html y veremos nuestra clase con su documentacion respectiva, para el ejemplo anterior veriamos en el resumen de metodos de la clase: En un principio veremos todas las clases de nuestro seleccionamos la que deseamos y veremos su detalle: paquete de clases, para ello
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 Seleccionamos la clase principal en este caso BeansDePruebaBean
28
6.2 Creacion de Diagramas de Clase con Ingenieria Reversa Para poder generarlos, es necesario instalar un paquete adicional al netbeans para aquello nos vamos al menu TOOL>PLUGIN y pinchamos la ficha AVAILABLES PLUGINS, buscamos UML seleccionamos e instalamos
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 Una vez seleccionado el modulo UML, presionamos el boton INSTALL y listo.
29
Como ya esta instalado, comenzamos a probar la creacion de los diagramas, para ello presionamos con el boton derecho en el icono principal del EJB, que en esta ocacion se llama AplicacionPrueba-ejb y seleccionamos la opcion REVERSE ENGINEER
Luego aparecera una ventana en donde debemos seleccionar los elementos para los que queremos hacer ingenieria reversa y le colocamos un nombre al modelo en la opcion CREATE NEW UML PROJECT
30
Cuando le demos el nombre, deberemos seleccionar el tipo de modelo que deseamos desarrollar, Colocamos el nombre y presionamos FINISH
Cuando este creado el modulo, veremos en la barra lateral izquierda que se han creado algunos elementos pertenecientes a la clase Prueba
Y en la parte central el diagrama de clase de nuestra respectiva clase o en este caso un beans de sesion.
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 Ahora, que sucede si vamos agregando mas clases y deseamos agregarlas a nuestro modulo de diagramas?
31
Realizamos los mismos paso, creamos nuestro beans en este caso, posterior mente presionamos con el boton derecho sobre el y seleccionamos REVERSE ENGINEER, pero ahora en vez de crear un nuevo modelo solamente agregamos nuestro nuevo beans a la clase seleccionando la opcion USE EXISTING UML PROJECT
Cuando ya este agregado presionamos con el boton derecho sobre la carpeta BeansPrueba2 y seleccionamos la opcion CREATE DIAGRAM FROM SELECTED ELEMENTS y este se creara en la perte central del area de trabajo de la misma forma que el primer diagrama
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 El diagrama, en este caso un beans, aparecera con sus respectivas clases.
32
6.3 Creacion independiente de Diagramas de Clases Para esta parte necesitaremos crear un nuevo proyecto UML como JEE, para comenzar creamos el modulo UML, para ello presionamos el boton de crear proyecto en el menu de barra o nos vamos al menu FILE y selecciionamos NEW PROJECT
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 Ahora le damos un nombre que en este caso sera PruebasDiagramas
33
Presionamos Finish y seleccionamos el tipo de modelo que deseamos hacer en este caso nos centramos solo en DIAGRAMAS DE CLASES, lo seleccionamos y le damos un nombre DIAGRAMA1
Ahora que nuestro modulo ha sido creado es necesario que sepamos algunas cosas. a) El netbeans crea un modulo UML que puede ser agregado a cualquier proyecto que tengamos abierto en ese momento. b) Cada diagrama que se genere dentro del modulo UML es independiente y cuando se generan los codigos de las clases se hacen de manera separada, por lo cual es necesario que siempre se creen con mucho cuidado para evitar errores de dependencias. c) Al crear modulos diagramas separados es posible crear diagramas de dependencias de cada clase para ver que clases deben ser tambien traducidas a codigo.
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 Ahora observemos que el modulo fue creado en la barra lateral izquierda
34
Y en la barra lateral derecha se encuentra la barra o paleta de herramientas de diseo de el diagrama, en este caso solo utilizaremos dos de ellas la de Clases y Generalizacion
Y en la parte central tenemos el espacio en blanco o area de trabajo donde realizaremos el diseo.
Para ello seleccionamos la herramienta CLASS y luego pinchamos sobre el area de trabajo para dibujarla
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 En la parte inferior a la paleta de herramientas tenemos la ventana de propiedades de clase y en ella podemos modificar todos sus valores por defecto, seleccionar el tipo clase y agregar comentarios de documentacion. Ahora en la clase creada modificamos nombre de esta con la propiedad NAME, o simplemente hacemos doble click sobre el nombre la clase en el area de trabajo, le daremos el nombre Clase1
35 la de el de
Luego comenzamos a agregarle metodos y atributos, para realizar la prueba agregamos dos atributos a los que le daremos los siguientes valores: atributo1:int, atributo2:String, para ello presionamos con el boton derecho sobre la palabra Attributes y seleccionamos INSERT ATTRIBUTE hacemos lo mismo para los Metodos pinchando sobre Operations y seleccionando INSERT OPERATION, al que agregaremos los siguientes metodos operacion1():void, operacion2():String, operacion3():int.
36
Una vez que este lista, procedemos a crear una nueva clase con los siguientes atributos: atributo1:Clase1, metodos: metodo1():void, metodo2():String.
Ahora agregamos una Generalizacion para indicar que la Clase2 depende de la Clase1, o simplemente generamos un diagrama de dependencias, para esto pinchamos la herramienta en la paleta
37
Para generar el diagrama de dependencias pinchamos en la clase dos en este caso y seleccionamos con el boton derecho sobre el icono de la clase en la ventana de proyectos y seleccionamos GENERATE DEPENDENCY DIAGRAM.
Y veremos el mismo resultado que al agregar la generalizacion, solo que en este caso estara un poco mas detallada, ya que ademas de aparecer las clases relacionadas se encuentra descrito el modulo al que pertenecen y los tipos de datos asociados a las clases.
Como ya sabemos crear los diagramas de clase, procederemos a generar los codigos java para las clases, a partir de los modelos creados.
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 6.4 Creacion de codigo java a partir de Diagramas de Clases en proyectos existentes
38
Para comenzar debemos crear una nueva aplicacin JEE en la cual generaremos nuestro codigo, en este caso se generara el codigo en el modulo EJB del proyecto JEE, para esto creamos un nuevo proyecto al que le daremos el nombre de CodigosDiagramas
modulos
en
los
que
se
pueden
almacenar
Ahora presionamos con el boton derecho en la clase que deseamos generar en este caso la Clase2 y seleccionamos GENERATE CODE
39
Cuando selecionemos la opcion deberemos seleccionar el proyecto al que deseamos enviar el codigo de nuestro modelo, para el ejemplo seleccionamos el modulo EJB del proyecto JEE que creamos
Para evitar errores en el paquete de aplicaciones del modulo EJB, debemos generar el codigo para la Clase1 ya que la Clase2 depende de ella. Cuando esten generados ambos codigos nos vamos al Item donde deben aparecer los paquetes creados para revisarlos.
En este caso revisaremos el codigo generado en la Clase2, como vemos en la imagen de mas abajo.
40
7.Netbeans 6 + PostgreSQL
A contiuacion nos centraremos en poder ocupar la herramienta de base de datos que trae netbeans con ellas podemos
Crear tablas Crear vistas Crear Consultas Ejecutar codigo SQL para, insertar, modificar y eliminar registros
para ello antes deberemos descargar el driver de PostgreSQL de la pagina oficial http://www.postgresql.org/download/ o directamente entramos a http://jdbc.postgresql.org/
No podremos crar procedimientos almacenados o funciones ya que no trae soporte para ello, asi que basicamente nos centraremos en realizar las operaciones de mayor uso que son las antes descritas.
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 7.1 Conexion con el servidor de base de datos
41
Cuando ya tengamos el driver descargado, nos vamos a la ficha Services de la barra lateral izquierda, y expandimos el icono DATABASES
Pinchamos con el boton derecho y seleccionamos NEW DRIVER, ahora deberemos buscarlo y agregarlo para ello pinchamos el boton ADD y lo buscamos en el directorio donde fue descargado
42
Y el driver deberia haber sido agregado, podemos verificarlo expandiendo el nodo Drivers del servicio DATABASES
Como ya tenemos el driver agregado deberemos crear una conexin a nuestra base de datos, que se encuentra en el servidor que instalamos en el capitulo 5. Para ello pinchamos con el boton derecho en el icono DATABASES y seleccionamos NEW CONNECTION, luego deberemos seleccionar el nombre del Driver que debera ser el que agregamos, darle la direccion de la base de datos, ingresar nuestro nombre de usuario y contrasea
Seleccionamos la ficha Advanced para seleccionar el esquema con el que deseamos trabajar, que en este caso es public, para ello pinchamos el boton GET SCHEMAS y seleccionamos en el combo de al lado public
Ahora ya estamos listos para comenzar a a realizar operaciones con la base de datos.
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 7.2 Crear una tabla Ahora que hemos creado la conexin a la base de datos, podremos ver tres carpetas cada una representa los tres elementos a los que tenemos acceso, sin embargo no podemos crear Procedimientos (carpeta Procedure) pero si tablas y vistas
43
Para agregar una tabla debemos pinchar sobre la carpeta TABLES y seleccionar la opcion CREATE TABLE, nos aparecera esta ventana donde debemos agregar cada uno de los campos de nuestra tabla, seleccionar tipo de dato tipo de campo y tamao en el caso de los tipo varchar.
Para esta prueba crearemos una tabla llamada tabla_prueba, con los campos que aparecen aca abajo
44
Cuando esten todos los cambios agregados presionamos el boton OK y estara lista, cuando se genere se agregara el icono de esta a la carpeta TABLES
Ahora crearemos otra tabla para relacionarla con la tabla_prueba con los siguientes campos
Cuando se genereren las dos tablas, las veremos en nuestra ficha de conexiones
Ahora deberemos crear la clave foranea de la tabla datos_tabla_prueba acia tabla_pruebas con codigo SQL. 7.3 Ejecutar codigo SQL Para ejecutar codigo SQL debemos pinchar con el boton derecho sobre la carpeta TABLES con el boton derecho y seleccionar EXECUTE COMMAND, con esto se nos abrira un area de trabajo para ejecutar instrucciones SQL, solo es posible ejecutar una o varias instrucciones seguidas no por parte o por seleccin ya que al escribir varias las ejecuta de forma secuencial, lo que hay que tener especial cuidado. Entonces tenemos el area de trabajo y la ventana OUTPUT donde veremos los resultados de cualquier tipo de consulta que realizemos
45
Asi ahora ejecutaremos el codigo para crear la clave foranea de la tabla datos_tabla_pruebas y para ingresar un dato a cada una para posteriormente crear una vista. El icono .ejecuta el codigo.
Cuando sea ejecutado en la ventana OUTPUT (barra lateral izquierda) podemos ver la clave agregada a la table expandiendo el icono FOREIGN KEYS de la tabla datos_tabla_pruebas
Ahora borramos el codigo ke ejecutamos para que no sea ejecutado nuevamente y creamos los codigos para ingresar un dato a cada uno de las tablas Ingresa dato a la tabla_prueba
46
Cuando esten ingresados realizamos un select a cada una de las tablas para verificar que esten ingresadas.
Como ya tenemos por lo menos un dato ingresado a cada uno, deberemos hacer una vista para ver los datos de ambas tablas que estan relacionados. 7.4 Crear una vista Para ello tenemos dos formas de hacerla, la primera es con codigo, y la segunda es con el editor de consultas. Para la primera debemos solamente hacer click con el boton derecho sobre la carpeta VIEWS y seleccionar CREATE VIEW e ingresar el nombre de la vista y su respectivo codigo sql.
Configuracin de un servidor para desarrollo con J2EE en Ubuntu 7.04 7.5 Crear una consulta con el editor
47
Para realizar una consulta con el editor basta con presionar con el boton derecho sobre cualquiera de las tablas, y seleccionar DESIGN QUERY, a continuacion nos abrira una ventana donde aparecera la tabla seleccionada solamente debemos seleccionar los campos que deseamos mostrar e ir editando sus parametros como orden, condiciones, etc. En este caso pinchamos sobre datos_tabla_prueba y deleccionamos la opcion antes nombrada.
Si deseamos agregar otra tabla, como tabla_pruebas, pinchamos con el boton derecho en el area blanca al lado del cuadro de la tabla datos_tabla_pruebas y seleccionamos ADD TABLE donde agregamos la tabla_pruebas, cuando se agregue aparecera una linea que muestra la relacion entre ambas tablas.
48
Cuando hallamos seleccionado los campos de seamos debemos ejecutar la consulta presionando con el boton derecho en el area blanca y seleccionar RUN QUERY, en el caso de enviar algun error bastara solamente con copiar el codigo que ha sido creado y pegarlo en una nueva area de trabajo, o editor de codigo SQL, para probarla, y luego si deseamos, convertirla en vista.
49
De igual forma sucede con el carcter comilla () en vez de ser copiado de igual forma al final y al inicio del atributo que estamos describiendo se copia de manera diferente. Por eso es recomendado revisar antes de que forma se han copiado y si es necesario volver a escribirlos. 8.2 Lenguaje PLPGSQL Cuando este instalado el motor de base de datos, en algunos casos el lenguaje plpgsql no es instalado por lo que se deberan crear las siguientes funciones para poder agregar el lenguaje.
Funcion 1: -- Function: plpgsql_call_handler() -- DROP FUNCTION plpgsql_call_handler(); CREATE OR REPLACE FUNCTION plpgsql_call_handler() RETURNS language_handler AS '$libdir/plpgsql', 'plpgsql_call_handler' LANGUAGE 'c' VOLATILE;
Funcion 2: -- Function: plpgsql_validator(oid) -- DROP FUNCTION plpgsql_validator(oid); CREATE OR REPLACE FUNCTION plpgsql_validator(oid) RETURNS void AS '$libdir/plpgsql', 'plpgsql_validator' LANGUAGE 'c' VOLATILE;
Funcion 3: -- Language: plpgsql -- DROP LANGUAGE plpgsql; CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler VALIDATOR plpgsql_validator;