Upload
hatruc
View
213
Download
0
Embed Size (px)
Citation preview
FACULTAD DE INGENIERÍA INGENIERIA DE SISTEMAS
Trabajo de Grado:
SISINFOCOOP: Prototipo de un Sistema de Información para la administración de datos en una
Cooperativa multiactiva con sección de crédito y aportes
Documento:
Manual de Configuración e Instalación de SISINFOCOOP
Oscar Javier Rey Caro
Tabla de Contenido
Introducción .......................................................................................................................................3
Software Requerido ...........................................................................................................................3
1. Instalación y Configuración del IDE Eclipse Luna ....................................................................4
a. Instalación ..........................................................................................................................4
b. Instalar plugins m2e de Maven ..........................................................................................4
c. Instalar JBoss AS Tools .......................................................................................................4
2. Instalación y Configuración del servidor Wildfly de JBoss ....................................................8
a. Instalación ..........................................................................................................................8
b. Configuración wildfly en Eclipse Luna.................................................................................8
3. Instalación y configuración de PostgreSQL 9.3.3.1 ...............................................................12
a. Instalación ........................................................................................................................12
b. Creación del usuario dueño de la base de datos en PostgreSQL ......................................12
4. Configuración e instalación driver PostgreSQL y el datasource en el servidor de WildFly ...15
a. Descargar el driver ...........................................................................................................15
b. Adicionar driver al servidor de wildfly ..............................................................................15
c. Adicionar el datasource ....................................................................................................15
d. Reiniciar el servidor ..........................................................................................................16
e. Verificar el Datasource .....................................................................................................17
f. Verificar la conexión .........................................................................................................18
5. Dominio de seguridad en el servidor WildFly .......................................................................19
a. Configuración del dominio en el servidor .........................................................................19
b. Referencia al dominio mediante el descriptor jboss-web.xml de la aplicación ................20
c. Configuración del descriptor de despliegue web.xml .......................................................20
6. Publicar la aplicación desde Eclipse ......................................................................................22
7. Desplegar el Prototipo por Consola ......................................................................................30
a. Archivo EAR ......................................................................................................................30
Introducción SISINFOCOOP, es una aplicación web empresarial, desarrollado en JAVA EE 7, PrimeFaces y
PostgreSQL, para la administración de la información de asociados, proveedores, pagadurías,
asesores comerciales, aportes sociales y créditos otorgados a los asociados.
Este manual presenta los pasos a realizar para la instalación del sistema de información
SISINFOCOOP.
Software Requerido
Para la correcta instalación de SISINFOCOOP es necesario contar con las siguientes herramientas.
Servidor de aplicaciones WildFly 8.1.0, se puede descargar de la url:
http://wildfly.org/downloads/
Motor de base de datos Postgresql-9.3.3-1, se puede descargar de la url:
http://www.postgresql.org/download/
IDE de trabajo, Eclipse Luna, se puede descargar de la url:
http://www.eclipse.org/downloads/packages/release/luna/sr2
En la página web del trabajo de grado se puede descargar un archivo Herramientas Desarrollo.rar
el cual contiene estas y otras herramientas necesarias para la instalación de SISINFOCOOP, a
continuación se muestra el resultado de descomprimir el archivo:
Ilustración 1 Resultado de Descomprimir el archivo
1. Instalación y Configuración del IDE Eclipse Luna
a. Instalación
Para instalar Eclipse Luna se debe descomprimir el archivo eclipse-jee-luna-SR2-win32.zip en la
ubicación que el usuario desee, o descargarlo de
http://www.eclipse.org/downloads/packages/release/luna/sr2 , se recomienda que la instalación
sea la predeterminada por el wizard.
b. Instalar plugins m2e de Maven
Maven es una herramienta open source para administrar el proyecto. Por administrar, nos referimos a gestionar el ciclo de vida desde la creación del mismo, hasta la generación del binario. A través del menú Help >> Eclipse MarketPlace, instalar los siguientes plugins
m2e- Maven integration for Eclipse
m2e connector for maven-remote-resources-plugin
Eclipse settings for M2E
c. Instalar JBoss AS Tools
JBoss Tools es una herramienta compuesta por un conjunto de plugins con facilidades para el
desarrollo y soporte de aplicaciones Web, pudiendo vincular además tecnologías como J2EE,
JBoss, Seam, Hibernate, JSF, JSP, Maven, servidores de aplicaciones, HTML, CSS, brindando un
soporte muy completo para el desarrollador.
1. Seleccionar Help | Install New Software
a. Seleccionar el boton Add:
2. En el cuadro que figura luego de oprimir Add digitar los siguientes datos
a. Name: JBossTools
b. Location: http://download.jboss.org/jbosstools/updates/development/luna/
c. Oprimir el boton OK
3. Seleccionar e instalar JBossAS Tools:
4. Instalar adicionalmente los siguientes plugins de JBoss Tools que se indican a
continuación:
JBoss Tools es un conjunto de plugins, con características diseñadas para ayudar a JBoss y
JavaEE a desarrollar aplicaciones:
JBoss Tools JSF: Componente para Soporte de RichFaces, Soporte de código,
Editores XML Web / JSP / XHTML, edición de hojas de estilo ”CSS”, validación de
web.xml, entre otras características.
JBossAS Tools: Componente para inicio, parada y depuración de servidores desde
Eclipse, también incluye funcionalidades de empaquetado y despliegue de
proyectos.
Hibernate Tools: Componente de persistencia que permite mapear clases en una
base de datos.
JBoss Tools Visual Page Editor: Componente con soporte para la edición de
páginas HTML y JSF.
CDI: Componente para el soporte del contexto y la inyección de dependencias a
través de anotaciones.
2. Instalación y Configuración del servidor Wildfly de JBoss
WildFly, es un servidor de aplicaciones JEE de código abierto desarrollado en Java; por tal razón se
puede trabajar con él desde cualquier sistema operativo que tenga previamente instalado un JDK
(Java Virtual Machine).
a. Instalación
Para instalar WildFly se debe descomprimir el archivo wildfly-8.1.0.zip en la ruta C: este archivo lo
puede obtener mediante dos opciones:
1. Descargar wildfly 8.1.0Final de http://wildfly.org/downloads/
2. Descomprimir el archivo Herramientas Desarrollo.rar y allí se encuentra el archivo wildfly-
8.1.0.zip
b. Configuración wildfly en Eclipse Luna
A continuación se debe configurar Eclipse Luna para poder subir, bajar el servidor WildFly desde el
IDE y adicionalmente publicar aplicaciones.
1. Seleccionar desde el menú File|New y seleccionar Server:
2. Seleccionar la versión del Server Wildfly 8.x :
3. Seleccionar la ubicación donde se descargó wildfly8.1.0Final :
4. Verificar que ha quedado instalado el servidor :
5. Subir el servidor
a. Para arrancar el servidor debemos dar clic izquierdo sobre la flecha verde
6. Ver la página del servidor corriendo en localhost:8080:
.
Mediante el enlace “Administration Console”, ir a la consola administrativa: puede
solicitar la inscripción de un usuario de administrador de consola mediante el comando
add-user.bat localizado bajo el subdirectorio bin (no olvidar el usuario/password que se
establecen aquí, por ej. admin/12345) .
3. Instalación y configuración de PostgreSQL 9.3.3.1
PostgreSQL es un gestor de base de datos relacional que puede correr tanto bajo sistemas
operativos Windows como en distribuciones Linux como Red Hat, Suse, Centos, etc. La versión de
PostgreSQL que se utilizó para esta guía de instalación es la 9.3.3.1; es posible que el proceso de
instalación para otras versiones, tanto anteriores como futuras, pueda variar.
a. Instalación
Para la instalación de postgresql tenemos dos opciones para obtener el instalador:
1. La primera opción es descargar el instalador de PostgreSQL para Windows; se puede
descargar desde el siguiente enlace http://www.enterprisedb.com/products-services-
training/pgdownload#windows
2. La segunda opción es descomprimir el archivo Herramientas Desarrollo.rar y allí se
encuentra el instalador.
Luego de que se obtiene el instalador, se procede a ejecutar el instalador postgresql-9.3.3-1-
windows.
1. Al ejecutar el instalador, se iniciará el asistente para instalar Postgresql, pulsaremos
siguiente.
2. Se solicitará la carpeta de instalación, dejaremos la ruta que tiene por defecto.
3. Introduciremos la contraseña para el superusuario, “postgres”, es importante recordar la
contraseña que se indique en este paso, ya que se podría utilizar en un futuro.
4. Luego, introduciremos el puerto de escucha para la conexión, por defecto es el 5432.
5. Y continuaremos con el asistente, seleccionando las opciones por defecto hasta finalizar la
instalación.
b. Creación del usuario dueño de la base de datos en PostgreSQL
Después de realizar la instalación se deben hacer las siguientes configuraciones.
1. Ejecutar la aplicación pgAdmin III, que es un cliente para interactuar con PostgreSQL,
aplicación que se encuentra dentro del directorio donde se instala postgresql.
2. Desplegar "Server Groups", dentro desplegaremos "Servidores" y dentro de éste
pulsaremos con el botón derecho del ratón sobre "PostgreSQL 9.3 (localhost:5432), en el
menú emergente seleccionaremos "Conectar", como se muestra a continuación:
3. Introducir la contraseña para el superusuario postgres (esta contraseña es la que se
estableció en la instalación):
4. Si todo es correcto nos conectaremos al servidor PostgreSQL, desde pgAdmin III podremos
configurar y administrar el servidor de PostgreSQL:
5. Luego de que se ha validado correctamente, deberá tener una pantalla igual a la siguiente
Ilustración 2 Pagina cliente PostgreSQL, estando aquí, pararse sobre la base de datos por
defecto llamada “postgres” y dar click izquierdo sobre el botón “SQL”; editor SQL donde se
ejecutaran los siguientes scripts para crear el usuario dueño de la DB y la DB.
Ilustración 2 Pagina cliente PostgreSQL
CREATE USER cooperativa LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE ENCRYPTED PASSWORD 'cooperativa';
Tabla 1 Script crear usuario dueño de la DB
CREATE DATABASE cooperativa WITH OWNER = cooperativa ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'Spanish_Spain.1252' LC_CTYPE = 'Spanish_Spain.1252' CONNECTION LIMIT = -1;
Tabla 2 Script para crear la DB
4. Configuración e instalación driver PostgreSQL y el datasource en
el servidor de WildFly
A continuación se explica cómo agregar el driver PostreSQL, para que funcione con el servidor de
wildfly8.1.0.Final.
a. Descargar el driver
Para obtener el driver lo podemos hacer por las siguientes opciones
Primera opción: se debe obtener el driver JDBC de Postgresql postgresql-9.4-
1202.jdbc4.jar de la url: http://jdbc.postgresql.org/download.html
Segunda opción: el driver se encuentra dentro del archivo Herramientas Desarrollo.rar.
b. Adicionar driver al servidor de wildfly
Crear carpeta postgresql/main bajo $wildfly_HOME/modules/org. Copiar allí el jar del
driver.
En la misma carpeta debe colocarse un descriptor module.xml con el siguiente
contenido (no olvide actualizar el nombre del jar del driver):
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="org.postgresql">
<resources>
<resource-root path="postgresql-9.4-1201.jdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
c. Adicionar el datasource
Luego se debe extender el descriptor standalone.xml del servidor bajo el subdirectorio:
$Wildfly_HOME/standalone/configuration/standalone.xml:
La extensión consiste en agregar una sección de datasource para la base de datos cooperativa
asociado al driver de Postgresql (se muestran en gris las secciones <datasource> y <driver>
agregadas; note que dentro de la sección <datasource> la etiqueta <driver> indica el nombre de
un driver, nombre que es utilizado en la sección <driver>):
<datasource jta="false" jndi-name="java:/CooperativaDb" pool-name="CooperativaDS"
enabled="true" use-ccm="false">
<connection-url>jdbc:postgresql://localhost:5432/cooperativa</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>postgresql</driver>
<security>
<user-name>cooperativa</user-name>
<password>cooperativa</password>
</security>
<validation>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
</validation>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<driver name="postgresql" module="com.postgresql">
<xa-datasource-class>com.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
d. Reiniciar el servidor
En este punto ya se tiene la configuración del servidor y nuestra base de datos; se debe reiniciar el
servidor wildfly desde eclipse y verificar el datasource en la página de administración, para ello se
debe digitar en el navegador web la siguiente dirección
http://localhost:9990/console/App.html#home allí se debe ingresar el usuario y la contraseña que
se ha creado previamente; para nuestro caso es “admin” y “12345” (Ver Instalación y
Configuración del servidor Wildfly). A continuación saldrá la siguiente información del servidor de
aplicaciones wildfly.
f. Verificar la conexión
Seleccionamos el datasource “CooperativaDS” y verificamos la conexión oprimiendo el botón “Test
Connection” como se muestra a continuación:
Y obtendremos la verificación y resultado de la conexión, como se muestra a continuación:
5. Dominio de seguridad en el servidor WildFly
Un dominio de seguridad es un conjunto de usuarios y contraseñas que identifican usuarios
válidos en aplicaciones web más una lista de roles asociados a los usuarios válidos. El servidor de
aplicaciones puede usar las librerías de JBoss para autenticar al usuario, siempre y cuando se
configure donde se guardan las credenciales (una base datos o un directorio de usuarios o un
archivo plano). La autenticación asigna la identidad del usuario. La autorización asigna permisos
sobre los recursos.
a. Configuración del dominio en el servidor
Para usar un dominio de seguridad en la aplicación, debe definirse la siguiente configuración en la
sección <security-domains> del subdominio security en el archivo de configuración del servidor
standalone.xml, ubicado en /standalone/configuration/.
<security-domains>
<security-domain name="cooperativa" cache-type="default">
<authentication>
<login-module code="Database" flag="required">
<module-option name="dsJndiName" value="java:/CooperativaDb"/>
<module-option name="rolesQuery" value="select r.nombre, 'Roles'
from cooperativa.usuario u, cooperativa.rol_usuario ru, cooperativa.rol r
where u.id_usuario = ru.id_usuario and r.id_rol = ru.id_rol and u.usuario
= ?"/>
<module-option name="principalsQuery" value="SELECT u.password
from cooperativa.usuario u WHERE u.usuario=?"/>
</login-module>
</authentication>
<authorization>
<policy-module code="Database" flag="required">
<module-option name="dsJndiName" value="java:/CooperativaDb"/>
<module-option name="rolesQuery" value="select r.nombre, 'Roles' from
cooperativa.usuario u, cooperativa.rol_usuario ru, cooperativa.rol r
where u.id_usuario = ru.id_usuario and r.id_rol = ru.id_rol and u.usuario
= ?"/>
<module-option name="principalsQuery" value="SELECT u.password from
cooperativa.usuario u WHERE u.usuario=?"/>
</policy-module>
</authorization>
</security-domain>
A continuación se explican algunos de los términos que aparecen en el anterior descriptor.
dsJndiName El nombre JNDI del datasource de la base de datos que contiene las tablas de usuario y rol_usuario; sino se indicia, este apunta por defecto a
Tabla 3 Sentencias archivo standalone.xml
b. Referencia al dominio mediante el descriptor jboss-web.xml de la aplicación
NOTA: la siguiente configuración ya viene lista en la aplicación SISINFOCOOP pero por completitud
se explican aquí los pasos seguidos para que la aplicación pueda utilizar el dominio de seguridad
configurado en el servidor.
Una vez definido el dominio de seguridad “cooperativa” que se quiere aplicar a una aplicación
web, se debe crear dentro de la aplicación el descriptor jboss-web.xml. Este archivo, entre otras
cosas, permite definir la relación entre la aplicación web y el dominio de seguridad que se quiere
aplicar. Se muestra, a continuación, un ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<security-domain>cooperativa</security-domain>
</jboss-web>
c. Configuración del descriptor de despliegue web.xml
NOTA: la siguiente configuración ya viene lista en la aplicación SISINFOCOOP pero por completitud
se explican aquí los pasos seguidos para que la aplicación pueda utilizar el dominio de seguridad
configurado en el servidor.
1. Agregar en el archivo descriptor de despliegue web.xml, dentro de la sección <web-app>
el elemento <login-config>, el cual define el método de autenticación a utilizar (en este
caso FORM), el nombre de dominio Seguridad y las páginas que se emplearán para
solicitar una autenticación o notificar problemas en la misma.
<!--Defining type of authenitcation mechanism-->
<login-config>
<auth-method>FORM</auth-method>
<realm-name>cooperativa</realm-name>
“java:/DefaultDS”
principalsQuery La sentencia para obtener el password del usuario: SELECT u.password from cooperativa.usuario u WHERE
u.usuario=?
rolesQuery La sentencia para obtener los roles del usuario: SELECT r.nombre, 'Roles' from cooperativa.usuario u,
cooperativa.rol_usuario ru, cooperativa.rol r where
u.id_usuario = ru.id_usuario and r.id_rol =
ru.id_rol and u.usuario = ?
<form-login-config>
<form-login-page>/faces/index.xhtml</form-login-page>
<form-error-page>/faces/index.xhtml</form-error-page>
</form-login-config>
</login-config>
<!--Defining type of authentication mechanism-->
2. Agregar los roles de seguridad que se emplearán en la aplicación al final del descriptor.
<!--Denining security role-->
<security-role>
<role-name>Administrador</role-name>
</security-role>
<security-role>
<role-name>Empleado</role-name>
</security-role>
<security-role>
<role-name>Asesor</role-name>
</security-role>
<security-role>
<role-name>Asociado</role-name>
</security-role>
<!--Denining security role-->
3. Finalmente se define la política y las páginas web a proteger y los roles que están
habilitados para acceder. Esto se hace agregando una sección <security constraint> como
se indica a continuación:
<security-constraint>
<web-resource-collection>
<web-resource-name>seguridad</web-resource-name>
<url-pattern>/faces/index.xhtml</url-pattern>
<url-pattern>/faces/principal.xhtml</url-pattern>
<url-pattern>/faces/pages/*</url-pattern>
<http-method>POST</http-method>
<http-method>GET</http-method>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>Administrador</role-name>
<role-name>Empleado</role-name>
<role-name>Asesor</role-name>
<role-name>Asociado</role-name>
</auth-constraint>
</security-constraint>
6. Publicar la aplicación desde Eclipse
En esta apartado se explicara como importar el proyecto y desplegarlo desde eclipse. Previamente
se debió descomprimir el archivo llamado código.rar donde se encuentra el proyecto.
1. Abrir eclipse, a continuación seleccionar File|Import.
3. Por ultimo debe indicar la ruta donde descomprimió el código y seleccionar el proyecto,
finalmente oprimir el botón “Finish”.
4. Se importará el proyecto y tendrá la siguiente estructura.
5. Para poder publicar el proyecto debe actualizar el proyecto; para ello dar click derecho
sobre el proyecto, seleccionar Maven y a continuación “Update Project…”. En este paso se
descargan las dependencias que necesita el proyecto.
6. Publicar la aplicación en modo “créate”; esto con el fin de que el servidor cree las tablas
en las DB; para ello debe hacer la siguiente configuración:
a. Abrir el archivo persistence.xml del paquete “proyecto-ejb”, como se muestra a
continuación:
b. Cuando esté abierto ir a la pestaña que dice “Schema Generation” allí seleccionar
la opción “créate” de “Database action” como se muestra a continuación:
Con este procedimiento lo que hace la aplicación es generar todas las tablas en la
base de datos para poder utilizarla.
c. Actualizar el proyecto como se indica en el numeral 5, luego que se ha publicado,
deberá para el servidor y realizar el paso a, en el paso b cambiar la opción de
“créate” a “default(None)”. A continuación volver a ejecutar el paso 5 y pasar al
paso 7.
7. Finalmente dar click derecho sobre proyecto-war y ejecutarlo sobre el servidor así como
se muestra a continuación:
8. La aplicación se publicara en el servidor WildFly y podrá observarse desde el navegador
que tiene Eclipse así:
9. Finalmente también puede ver la aplicación en cualquier navegador web escribiendo en la
siguiente dirección http://localhost:8080/proyecto-war/
10. En este punto ya hemos creado el propietario y la base de datos, a continuación se debe
inicializar la base de datos, y algunas tablas como las de seguridad para poder ingresar a la
aplicación. Para ello debe ejecutar los siguientes scripts:
INSERT INTO cooperativa.usuario( id_usuario, usuario, password, estado) VALUES (1, “admin”, “clave”, “A”);
INSERT INTO cooperativa.rol( id_rol, nombre, descripcion) VALUES (1, “Administrador”, “Administrador del Sistema”);
INSERT INTO cooperativa.rol_usuario( id_rol_usuario, id_rol, id_usuario)
7. Desplegar el Prototipo por Consola A continuación se explicara como desplegar el prototipo por consola, esto quiere decir sin
necesidad de tener instalado eclipse, sin embargo debe hacer las configuraciones e instalaciones
del servidor de wildfly, PostgreSQl , Drive de PostgreSQL y la configuración del Dominio de
seguridad, con esto queremos decir que el único paso que omitimos es la instalación y
configuración de eclipse.
a. Archivo EAR
1. Descomprimir el archivo Herramientas Desarrollo.rar y allí se encuentra el archivo
proyecto-ear.ear
2. Si no ha realizado la instalación del servidor WildFly, (ver Sección 2.0 Instalación y
Configuración del servidor Wildfly) de este documento, si ya la realizo omita este paso.
3. Abra una consola de Windows utilizando el comando cmd.
4. Sitúese en el directorio donde descomprimió el wildfly, y ejecute el archivo standalone.bat
que se encuentra en la carpeta bin, “<WildFly directory>\bin\standalone.bat “.
Con esta acción el servidor wildfly iniciara el arranque , después usted debería ser capaz
de acceder al servidor web en http://localhost:8080/
5. Abra el vínculo Administración de consola y debería salir una pantalla como se muestra a
continuación.
Ilustración 3 Pantalla Administración de Consola WildFly
6. De clic sobre el link Create Deployment, y le saldrá una pantalla como la siguiente, de clic
sobre el botón Add, y seleccione la ruta donde tiene el archivo proyecto-ear.ear.
Ilustración 4 Adicionar despliegue
Cuando haya hecho la selección del archivo como figura a continuación, dar clic sobre el botón
next.
Ilustración 5 Selección ruta del archivo EAR
El siguiente paso el servidor verificara el archivo EAR, y nos indicara los nombres de despliegue, y
nos saldrá una pantalla como la siguiente donde le damos clic en save.
Ilustración 6 Verificar desplegué de nombres
7. Luego procedemos a activar el despliegue del respectivo archivo dando clic sobre el botón
“En/Disable” y confirmamos la habilitación.
Ilustración 7 Habilitar el despliegue
8. Si todo esta correcto debemos obtener una pantalla como se indica a continuación, lo cual
nos indica que ya podemos ver nuestra aplicación en cualquier navegador web.
Ilustración 8 Despliegue de aplicación lista
9. Por ultimo debemos escribir en el navegador web lo siguiente
http://localhost:8080/proyecto-war/ y estamos listos para entrar a nuestra aplicación.