33
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 [email protected]

FACULTAD DE INGENIERÍA INGENIERIA DE …pegasus.javeriana.edu.co/~CIS1530AP01/documentos/... · Introducción SISINFOCOOP, es una aplicación web empresarial, desarrollado en JAVA

  • 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

[email protected]

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.

e. Verificar el Datasource

Seleccionamos el link Datasources como se muestra a continuación:

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.

2. A continuación debe seleccionar la carpeta Maven y escoger “Existig Maven Projects”

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)

VALUES (1, 1, 1);

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.