miércoles, 22 de mayo de 2013

El caracter ^M en archivos Unix y Linux

El caracter ^M en archivos Unix y Linux

Con demasiada frecuencia ocurre que importamos un texto de MS-DOS a UNIX, y al editarlo con el vi (por ejemplo), sale lleno de "^M" al final de todas las líneas. Esto de los ^M ocurre porque el delimitador de línea de los ficheros de texto en DOS es CR-LF (carriage return-linefeed, o sea, retorno de carro y salto de línea), y en UNIX son simplemente LF. Así, muchas herramientas de UNIX (al menos por defecto), buscan como delimitador de línea el LF, así que al final de cada línea hay un caracter extraño (el CR).
Esto, en vi, se puede arreglar fácilmente con la orden 

 :%s/<Ctrl-V><Ctrl-M>//g
 
NOTA. Con esto me refiero a abrir el archivo con vi y ejecutar el comando anterior.  
 
Descripción del comando: El "%" sirve para que se sustituya en todas las líneas, y no sólo en la actual, la "s" para que se realice una sustitución, el Ctrl-V Ctrl-M es necesario para que el vi no se crea que estamos pulsando un ENTER (Ctrl-V sirve para insertar literales), y, por supuesto, se sustituye por nada, así que entre la segunda y la tercera barras no ponemos nada.

Por si no te gusta el vi, puedes cambiar el formato de los ficheros de texto desde la línea de órdenes, escribiendo:

 sed 's/<Ctrl-V><Ctrl-M>//' fichero-CRLF >fichero-LF
 
Si no conocías el sed (lo más probable, porque si lo conocieras ya se te habría ocurrido a ti el truco), es una herramienta bastante versátil de proceso de texto (no tanto como el perl), y no muy complicada de utilizar. 


lunes, 20 de mayo de 2013

java.lang.UnsatisfiedLinkError on Linux Fedora 17 x86_64 bits

Issue: java.lang.UnsatisfiedLinkError on Linux Fedora 17 

Buenos dias!!!!!!

Hoy le dejo la sulocion a este problema

java.lang.UnsatisfiedLinkError: Could not load SWT library

y es que este error es ocasionado cuando tratas de abrir el WebSphere MQ Explorer, realizar la instalación y configuración de Instalation Manager(El cual es necesario para instalar las ultimas versiones de los productos como MQ, Broker, WAS, Fixes, etc) en modo gráfico. Y es que este error se preseta debido a que la distribución de Linux no cuenta con la librerias adecuadas para lanzar el modo grafico de las tareas antes mencionadas:

1. ./IBMIM command - para lanzar la consola de IM.
2. ./install command - para lanzar la instalacion de IM.
3. ./strmqcfg - para lanzar MQ Explorer.

Para solucionar este problema basta con ejecutar el siguiente comando con privilegios de root.

yum install gtk2.i686 gtk2-engines.i686 PackageKit-gtk-module.i686 PackageKit-gtk-module.x86_64 libcanberra-gtk2.x86_64 libcanberra-gtk2.i686


Nota. Se utiliza YUM debido a la distribución pero podría variar de acuerdo a la misma.

Una vez realizado lo anterior deberíamos poder lanzar el modo gráfico sin ningún problema.

A continuacion el error completo:

----------------------------------------------------------------------------------------------------------------
!ENTRY org.eclipse.osgi 4 0 2013-05-13 22:57:12.833
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
        /opt/IB/InstallationManager/eclipse/configuration/org.eclipse.osgi/bundles/336/1/.cp/libswt-pi-gtk-3659.so (libXtst.so.6: cannot open shared object file: No such file or directory)
        swt-pi-gtk (Not found in java.library.path)
        /tmp/swtlib-32/libswt-pi-gtk-3659.so (libXtst.so.6: cannot open shared object file: No such file or directory)
        /tmp/swtlib-32/libswt-pi-gtk.so (/tmp/swtlib-32/liblibswt-pi-gtk.so.so: cannot open shared object file: No such file or directory)

----------------------------------------------------------------------------------------------------------------

miércoles, 13 de marzo de 2013

Certificados y Encriptamiento

Introduccion a certificados

Hola Amigos!!!!
 
El dia de hoy veremos los conceptos relacionados con certificados en WAS / IHS, y es que es my importante saber que es cada cosa y para que sirve pues con este panorama sera muy facil saber distinguir entre los distintos tipos de certificados y su forma de uso.

Certificado autofirmado: Este es un certificado por la misma empresa lo que significa que es valido dentro de su dominio o dentro de su LAN.

Certificado firmado por una entidad valida. Es un certificado firmado por una CA tal como Virisign, Geotrust, etc, y que nos garantizan el uso de un dominio valido y que no genera un sitio no seguro como lo hace un autofirmado.
 
Tamaño del cifrado. Es el algoritmo que nos ayuda a encriptar la informacion que transita por los puntos donde esta intalado, como por ejemplo si lo pusieramos en un webServer todas la peticiones que llegue a el por el puerto que se configuro para utilizar el certifcado se haran de forma cifrada.
 Este tamaño del cifrado del algoritmo puede variar, y con esto nos referimos a que su algoritmo puede ser entre 128, 256, 512, 1024, 2048 bits, siendo obviamente entre mas grande mucho mejor.
 
Otro punto importante que debemos entender es que un certificado simpre va almacenado en una base de datos de Certificados, como por ejemplo .kdb, .jks, por decir algunos.
 
Esta base de datos contiene dentro las siguientes opciones:
 
1. Personal Certificates (Certificados Personales): Los certificado que son expuestos  a la hora de contestar a una peticion, ya sean autofirmados o validos.

2. Signer Certificates (Certificados de Firmantes).Los certificados o llaves que se utilizan cuando se quiere hacer alguna llamada a algun servicio de un terceros que tienen configurado su propio certificado

3. Personal Certificate Request (Peticion de certificado Personal). Estas son las llaves o certificados que se crean y que posteriormente se manda a firma ya sea con una entidad valida o no.
 
A continuacion una imagen de una base de datos de certificados.



Como obtener un certificado valido?

Un certificado valido consiste de algunos pasos para poder tramitarlo, y a continuacion se enlistan:
 
1. Crear una Base de datos de ccertificados (KDB, JKS, etc).
 
2. Crear una peticion de certificado (Personal Certificate request) dentro de la base de datos de certificados (MyKDB.kdb)
 
3. A continuacion se muestran los datos que generalemente se necesitan:



4. Una vez creado el Request se genera un archivo .arm que es el que se manda con firma con el area de segurirdad de cada empresa.
 
5. Abrir la Base de datos y en la Opcion de Personal Certificates dar clic en Receive, este proceso hace que la peticion con el certificado Firmado se fusionen.



6. En la opcion de Signer Certificate instalar los certificados de los intermediarios que puede considerarse a estos como los responsables del nuevo dominio.


 
7. Configurar la Herramienta que hara uso del nuevo certificado.
 
8. Una ves que se no devuelve el certificado firmado a su ves se no entrega los certificados de intermediario, que puede tomarse esto como los responsables del nuevo dominio.

Como obtener un certificado autofirmado

Este certificado simplemente se crea directamente en Personal Certificates con opcion de New Certificate


Se proporcionan los datos y se configura la herramienta que hara uso del certificado.

NOTA. Las imagenes que se tomaron fueron ejemplos de certificados para la creacion de un KDB para un IBM HTTP Server.
Saludos

jueves, 7 de febrero de 2013

Automatico redireccionamieto de http a https

Redireccionamiento HTTP a HTTPS en IBM HTTP Server 

Regularmente es necesario que todas y cada una de las aplicaciones que se encuentran instaladas en un ambiente de producción sean consumidas por medio de HTTPS y no por HTTP como regularmente sucede, y para esto hay una solución, la cual consiste en configurar el archivo httpd.conf del WebServer para hacer que todas las peticiones que entran por algún puerto no seguro sean redireccionadas a un puerto seguro.

A continuación las lineas que se deben de agregar:

# Redireccionar peticiones HTTP hacia HTTPS para ciertas aplicaciones en un servidor sin dominio
 
RewriteCond %{SERVER_PORT} ^[HTTP Port]$
RewriteCond %{REQUEST_URI} /("ContextRoot")
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
 
#Redireccionamiento hacia un dominio

RewriteCond %{SERVER_PORT} ^[HTTP Port]$
RewriteCond %{REQUEST_URI} /("ContextRoot")
RewriteRule (.*) https://"NombreDelDominio"%{REQUEST_URI} [L]


Donde:

[HTTP Port] = Puerto no seguro a donde se hacen las peticiones a la aplicación, regularmente suele ser el puerto 80

"ContextRoot" = Contexto de la aplicación y puede ser uno o varios solo hay que agregar "|" entre contextos: por ejemplo (MyWeb01|MyWeb02|....).

"Nombre del Dominio" = El dominio Web: por ejemplo. MyWeb.com.mx

Cabe mencionar que para que esto se puede llevar a cabo debe de haber una configuración previa de SSL v2 o en su caso SSL v3 con el propósito de habilitar los puertos seguros y tener una certificado instalado para la encriptación de datos.

jueves, 10 de enero de 2013

Comandos utiles para administración en UNIX / LINUX

Comando útiles en la administración de WAS en Unix o Linux

La administración sobre Windows como es de método gráfico muchas veces suele ser muy sencilla ya que se puede se pueden realizar muchas tareas de manera gráfica muy fácilmente, tal como:

Detener Servicios
Listar archivos
Navegar entre directorios
Crear directorios
Hacer busquedas
Editar archivos
Realizar Filtros
Comprimir y descomprimir Archivos
Matar procesos

entre otras cosas

Pero que pasa a la hora de llevar a cabo estas tareas en un SO donde solo es posible la linea de comandos?

Bueno pues aquí se muestra una lista con una breve descripción de algunos comando que sirven para realizar cada una de las tareas que se llevan a cabo en un ambiente windows en un SO Linux o Unix.

Lista de archivos

ls -lrt : Enlista los directorios de manera que el primero es el mas antiguo y el ultimo el mas recientemente modificado
ls -lrt -R : Lo mismo que el anterior pero además enlistara todo el contenido de los subdirecorio y subdirectorios de subdirectorios y asi sucesivamente

cd Directory : Para entrar a un directorio
cd .. : Para salir de un directorio

mkdir Directory_Name : Para crear un directorio.
rmdir Directory: Eliminar directorio.

lsvg :  Enlista los Volume Group de un sistema Unix

lsvg -l "volGrp" : Los File System montados en un Volume Group

lsvg -L "VolGrp" : Lista las características de un VG asi como su tamaño libre y ocupado, por lo que es útil para cuando queremos aumentar el tamaño de un FS y no sabemos si hay recursos disponibles.

vi : Editor de archivos de texto plano. Este comando es muy poderoso por lo que seria bueno consultar una guia dedicada para poder sacar todo el poder de esta utilidad.

tail -f File.log : Para monitorear un archivo en tiempo real.

grep -i "Cadena de texto" file.txt : Para buscar una cadena de texto en un archivo

df -g : Enlista los File Syetem Montados y su tamaño (libre y ocupado) en GB, se puede utilizar -m -k para MB o Kb.b

cp -Rf Directory Directory_Copy : Para copiar un directorio y su contenido.
cp File File_Copy : Copiar un archivo

find "Path" -name "file or Directory Name" 2>/dev/null : Para hacer busquedas de archivos y directorios. "2>/dev/null" es utilizado para que si el usuario no tiene permisos sobre algun archivo o alguna otra restriccion sobre algun directorio donde se trate de llevar a cabo la busqueda no arroje un "Access Denied" en la consola, o mensajes de caracter nulo.

ps -fea | grep -i "Java" : Enlista todos los procesos Java y su descripcion, lo cual es muy util ya que si recordamos los procesos de WAS son Java, de esta manera identificamos los procesos de WAS y podemos matarlos en caso de esta colgados.

ps -fea | grep java | awk '{print($2)}' : Enlista solo los PID de cada proceso Java

netstat -na | grep "port" : Sirve para identificar la conexiones de algun puerto, este es importante ya que alguna veces puede haber conexiones colgadas a algun puerto de WAS(por ejemplo el puerto 9080, 9443, etc).

netstat -na | grep "port" | wc -l : No arroja la cantidad de conexiones al puerto

netstat -na | grep "port" | grep -i "[Listen | Established | Time_Waiting]" | wc -l : Este arroja la cantida de conexiones a un puerto en algun estado Listen, Established, Time_Waiting entre otras. Se selecciona solo un estado [Listen | Established | Time_Waiting].

gzip `find {WAS_HOME]/ -name System*_*.log 2>/dev/null` : este comando es muy util si tenemos configurados los logs para que se cree uno diario ya que para no saturar el File System seria bueno comprimir los archivos logs diario, esto mediante un Shell programado en algun cron. Cabe mencionar que si manda un error de que la cadena es demasiado grande, seria bueno primero hubicarse en {WAS_HOME} y desde ahi ejecutarlo para no poner todo el Path en el comando.

{WAS_HOME}/java/bin/jar -cfv file.zip file : No apoyamos de la Java de WAS para poder crear un archivo ZIP

grep -Eoc "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}.* 200"  archivo.log : Nos ayuda a buscar una IP en un archivo log, para poder entender un poco mas este comando seria bueno tener en cuenta las Expresiones Regulares.

prtconf : En los Sistemas AIX/UNIX arroja la informacion del Servidor, tal como: IP, Mascara de red, subred, Memoria fisica, Memoria de paginacion, Tipos de procesador, etc.

traceroute IP/HostName: Sirve para hacer una traza hacia un punto destino, ya sea dentro de una red local o hacia internet.

kill -9 PID : Patar de manera ruda un proceso.

kill -3 PID : Genera un archivo javacore.txt en WAS_HOME con informacion de los metodos y clases que se estan ejecutando en algun proceso.


Hasta la proxima.

miércoles, 26 de diciembre de 2012

Estructura de de sus archivos y archivos de configuración

Estructura de de sus archivos y archivos de configuración!!! +Néstor Morales  +Hector Ochoa +Jocelyn Sánchez Téllez +Pablo Antonio Rivera Jimenez

 Estructura de los archivos de WAS

De acuerdo al SO en el cual estes instalando tu producto WAS, a continuación se muestra la que es la Path donde por default estan depositados los archivos binarios del producto:

AIX /usr/IBM/WebSphere/AppServer
HP-UX /opt/IBM/WebSphere/AppServer
Linux /opt/IBM/WebSphere/AppServer
Solaris /opt/IBM/WebSphere/AppServer
Windows C:\IBM\WebSphere\AppServer

Claro que hay que aclarar que estos pueder cambiar si lo desean.

Estructura de los Archivos de los perfiles de WAS

AIX/usr/IBM/WebSphere/AppServer/profiles
HP-UX/opt/IBM/WebSphere/AppServer/profiles
Linux/opt/IBM/WebSphere/AppServer/profiles
Solaris/opt/IBM/WebSphere/AppServer/profiles
WindowsC:\IBM\WebSphere\AppServer\profiles

 Dentro de esta carpeta o Directorio de profiles es donde se crear los directorios que contienen la configuración de los diferentes perfiles que podemos crear:

Deployment Manager
Application Server
Job Manager
Administrative Agent
Node Agent
Security Proxy
DMZ Proxy

Es importante diferenciar la ruta donde estan ubicados los archivos de configuración de WAS contra los archivos de configuración de los perfiles,
ya que como veremos mas adelante, se puede llevar a cabo una administración atravez de linea de comandos y es importante saber cuando utilizamos los archivos de configuración de WAS y cuando los de algún perfil.
 
Archivos de Configuración

Regularmente los administradores de WebSphere Application Server realizan todo desde la consola de administración y no se pone mucha atención en los archivos que se actualizan cuando se realiza un cambio, es por eso que varemos algunos de los archivos de configuración mas importantes que se deben tener en radar, esto seguramente sera de mucha ayuda cuando tengamos algún problema, como por ejemplo, cuando olvidemos el password de la consola de administración, cuando no levante los servicios debido a una configuración errónea de una propiedad de la JVM, conflicto con puertos, etc.
Hay que recordar que WAS almacena toda su configuración en archivo XML, es por eso que debemos tener conocimiento con esta tecnología, dejaremos unos link al final como referencias
 
- - - admin-authz.xml - - -

Contiene un listado de los Roles que se puede otorgar para accesos a la consola de administración, aplica para cada uno de los perfiles.
Ubicación del Archivo:

    <profile_root>/profileName/config/cells/<cell_name>/

- - - profileRegistry.xml
- - -

Contiene una lista de los perfiles y sus datos de configuracion

Ubicacion del Archivo

    <profile_root>/profileName/properties

- - - resources.xml
- - -

Contiene la deficion de los recursos de todos los ambitos tales como JDBC, JMS, JavaMail, URL, etc.

<profile_root>/profileName/AppSrvName/config/cells/CellName/nodes/NodeName

- - - security.xml
- - -

Contiene informacion relacionada con toda la seguridad tal como Serguridad de la consola, seguridad Java, cetificados, entre otros.

Ubicacion del archivo

    <profile_root>/profileName/AppSrvName/config/cells/CellName

- - - serverindex.xml
- - -

Contiene informacion de los puertos que levantan con el perfil en cuestion.

Ubicacion del archivo

    <profile_root>/profileName/AppSrvName/config/cells/CellName/nodes/NodeName

-  - - server.xml - - -

Contiene informacion de configuracion de la JVM, tal como el tamaño maximo y minimo, propiedades de JVM, configruacion de GC.

Ubicacion del archivo

<profile_root>/profiles/AppSrvName/config/cells/CellName/nodes/NodeName/server/serverNAme/
 
Bueno  hasta aquí los temas de hoy, si llegan a estar mas interesados en algo mas especifico deja tus comentarios y con gusto escribirmos al respecto.

Nota. En las siguientes publicaciones no tocaremos temas como la creación de perfiles, instalación de parches, entre otros, salvo a petición de los interesados, ya que nos enfocaremos a temas de alta relevancia y que sean de gran utilidad, ya sea de SO, WAS, IHS, Scripting, Monitoreo, entre otros.

En nuestra siguiente publicación veremos: Comando Unix mas utilizados en la Administración de WAS / IHS

 




viernes, 14 de diciembre de 2012

Instalacion de WebSphere Application Server


Instalación de WebSphere Application Server.

Buenas mis amigos,

Llegamos a un punto interesante dentro de este viaje relacionado con WAS y es la instalacion.

Hay que recordar que WAS esta disponible para diferentes plataformas, ya sea Windows, Linux, UNIX, zOS y sus diferentes distribuciones entre otros, y es por eso que debemos saber que podemos realizar la instalacion de dos maneras principalmente;

  1. Modo Grafico.
  2. Modo Silencioso

El modo grafico automaticamente esta disponible en windows, pero en el caso de UNIX o Linux se puede llegar a hacer siempre y cuando se configuren algunas cosas extras.

Modo grafico

Aplicaremos como ejemplo en un Sistema Windows.

Una vez descargado el paquete desde el sitio oficial de IBM, el cual viene en formato Zip, descomprimimos el mismo una carpeta utilizando una herramienta como Winrar o Winzip.

Una vez descomprimido el paquete nos ubicamos en la carpeta de /WAS que vienen dentro del mismo y damos doble clic en archivo install.exe, el cual nos lanzara el wizard como se muestra a continuacion



dando clic en Siguiente nos mostrara la parte donde debemos aceptar los terminos y condiciones, una vez aceptado damos clic en siguiente:



En la pantalla siguiente si nuestro servidor cuenta con las prerequisitos adecuados se nos mostrara una pantalla como la siguiente:



En caso de ocurrir un error aqui mismo se nos muestra que es lo que nos hace falta como prerequisito.

Continuando con la instalacion en la siguiente pantalla se nos pedira si queremos instalar las aplicaciones de ejemplo e idiomas extras, seleccionamos lo que se nos adecue a nuestras necesidades y damos siguiente:



Nota. Para un ambiente de produccion es recomendable no instalar las aplicaciones de Ejemplo.

En la siguiente pantalla se nos pedira la ruta de instalacion del producto, damos la ruta y Siguiente:


Lo siguiente es seleccionar el tipo de perfil que deseamos instalar durante la instalacion, seleccionar Application Server, dar clic en siguiente.


Nota. Mas adelante veremos la creacion de los diferentes perfiles.

En la siguiente pantalla se nos pedira si queremos que la segurirdad de la consola este habilitada o no, esto depende de las necesidades de cada proyecto, regularmen no se configura durante la instalacion puesto que la seguridad regularmente va con un relacionada con un LDAP o con un Directorio Activo, dar clic en siguiente.


A continuación un resumen de la instalación, dar clic en siguiente:



se llevara cabo la instalacion y una vez termianda se mostrara una pantalla donde se indicara uno de tres tipos de instalacion finalizada.

Satisfactoria.
Parcialmente satisfactoria
No satisfactoria

Dando clic en Finalizar se nos mostrara una pantalla con un menu donde veremos los primeros pasos a realizar depues de una instalación:


Estos podrian ser todos los pasos para llevar a cabo una instalacion de WAS de forma Grafica, pero que pasa con la forma Silenciosa?

Instalacion de modo Silencioso

Para llevar a cabo una instalacion de modo silencioso dentro del paquete de WAS contamos un archvio llamado responsefile.txt donde viene el similar de cada una de las cosas que se hacen de manera grafica

a continuacion un fragmento del mismo

#################################################################################
#
# WebSphere Application Server V7.0 installation options file
#
# This options file runs the installation wizard in silent mode. This lets the
# options file author specify installation settings without having to run the
# wizard in graphical mode. To use this options file for silent mode execution,
# use the following command line arguments when running the wizard:
#
# -options "/<responsefile.path>/responsefile.nd.txt" -silent
#
# Read the documentation for information on changing the value for each option.
# Enclose all values within a single pair of double quotes.
################################################################################
################################################################################
# Installation options and values
################################################################################
#
# License Acceptance
#
# By changing the silentInstallLicenseAcceptance property in this response file
# to "true", you agree that you have reviewed and agree to the terms of the
# IBM International Program License Agreement accompanying this program, which
# is located at CD_ROOT\was.primary.pak\repository\legal\lafiles. If you
# do not agree to these terms, do not change the value or otherwise download,
# install, copy, access, or use the program and promptly return the program
# and proof of entitlement to the party from whom you acquired it to obtain
# a refund of the amount you paid.
#
# Valid values for silentInstallLicenseAcceptance:
# true - Accepts the license and product installation will occur.
# false - Declines the license and product installation will not occur.
#
-OPT silentInstallLicenseAcceptance="true"

En este fragmento tenemos el similar de lo que seria en la pantalla de aceptar terminos y condiciones en el modo grafico.(hay que recordar que dentro de estos archivos todo lo empiece “#” se toma como comentario).

Lo que tenemos que hacer es crear un archivo llamado WAS_install.txt con el siguiente contenido:

-OPT silentInstallLicenseAcceptance="true"
-OPT allowNonRootSilentInstall="true"
-OPT disableOSPrereqChecking="true"
-OPT installType="installNew"
-OPT profileType="standAlone"
-OPT feature="noFeature"
-OPT feature="languagepack.console.all"
-OPT feature="languagepack.server.all"
-OPT PROF_enableAdminSecurity="false"
-OPT installLocation="PATH"
-OPT traceLevel=INFO
-OPT PROF_hostName=localhost
-OPT PROF_nodeName=Node01
-OPT PROF_cellName=CellNode01
-OPT PROF_defaultPorts="true"

Estas linea contienen todo lo que se llevo a cabo durante la instalacion de forma grafica.

Una vez creado el archivo desde una linea de comando y a la ruta donde esta el paquete de WAS

/WAS_Package/WAS/

ejecutar el siguiente comando

>./install -options WAS_install_txt -silent

despues de varios minutos y si no hubo ningun problema regresara el prompt.

Ir a la ruta de instalacion de WAS

/WAS_HOME/logs/install

ver el archivo log.txt, y hasta las ultimas linea debe de haber un fragmento de texto como el que se muestra a continuacion:

(Nov 10, 2012 1:26:52 PM), Process, com.ibm.ws.install.ni.ismp.actions.SetExitCodeAction, msg1, CWUPI0000I: EXITCODE=0
(Nov 10, 2012 1:26:52 PM), Process, com.ibm.ws.install.ni.ismp.actions.ISMPLogSuccessMessageAction, msg1, INSTCONFSUCCESS

Lo que indica que la instalacion se llevo a cabo de manera correcta (INSTCONFSUCCESS).

Esto es en General lo que se realiza cuando se lleva a cabo una instalacion de WAS y que aplica tanto para la version Base como para la Version ND.

En el siguiente blog veremos la estructura de archivo, algunos archivos que siempre debes de tener en mente, que tienen configuracion sensible de WAS y que te puede llegar a sacar de un apuro sin ninguna duda.