martes, 12 de noviembre de 2013

Como quitar el estado de los portlets y pagina de la URL en WebSphere Portal 7 ?

Todos hemos visto que el portal genera las URL's de la siguiente manera:

http://portal.jcamacho.com:10039/wps/myportal/!ut/p/b0/04_Sj9CPykssy0xPLMnMz0vMAfGjzOK9AxxNfZ2D_LzNAo3MDRwNXM1C3EM8DA2CzfULsh0VAYzsxpI!/

Que tal si les dijera que pueden tener URL's como la siguiente:

http://portal.jcamacho.com:10039/wps/myportal/Home/elNombreQueQuiera

Pues es posible de hacer, pero todo tiene un costo, asi que tienen que considerar lo siguiente:

Primero que nada todas esas letras y numeros lo que hacen es que guardan el estado de la pagina y el estado de los portlets que existen en esa pagina, esto para que cuando un usuario haga un bookmark de esa pagina, pueda regresar a ella en el mismo estado en la que estaba, tambien sirve para el boton back del navegador, que de igual manera pueda mantener el estado de la pagina como la dejo antes de irse al siguiente link. Pero, ¿que es el estado?, pues es si el portlet esta en algun modo especial como edit, si esta maximizado, minimizado, los render parameters que tienen etc.

Por lo que si su aplicacion depende de estos factores, pues no lo podran hacer pues afectaria el funcionamiento de su aplicacion.

Si la URL no tiene estado, entonces todo lo que contenga esa pagina mostrara su estado "default" que en el caso de los portlets es el modo view.

Despues de tomar las anteriores consideraciones, es momento de hacer las cosas.
Primero deben de ir a la consola de administracion de su portal:



Se van a Manage Pages y dentro de ahi hacen click en el boton de Edit Page Properties:




E introducen el Friendly URL name que quieran:


Le dan OK y listo ya tendrian una URL como esta:

http://portal.jcamacho.com:10039/wps/myportal/Home/Inicio/!ut/p/b1/pZDLDoIwEEW_xQ8wM0VKy7JBKaTYIApKN4aFISQ8NsbvF3BNMWF2Te_JzT1goNwTyplPGXU5PMD01aepq3cz9FU7vY33VKmg5yDTKr8

Bueno ya tenemos la primera parte hecha, ahoralo que necesitamos es irnos al Tema de la pagina que quieren quitarle el estado, esto es el look and feel que diseñaron.
Deben de buscar los archivos de topNav.jspf y sideNav.jspf y dentro de ellos localizen la parte donde se generan las URL's para las paginas, algo asi como lo siguiente:

<a href="<portal-navigation:navigationUrl type='link'  />">

y agreguenle lo siguiente: keepNavigationalState="false"
por lo que ahora quedaria asi:

<a href="<portal-navigation:navigationUrl type='link' keepNavigationalState="false" />">

Ahora hacen un cambio en el archivo Default.jsp para que agarre los cambios, empaquetan y despliegan la actualizacion de su tema.

OJO: Si a las paginas no les ponen el friendly URL del primer paso, seguira apareciendo el estado de la pagina en la URL.

Hay un paso extra si es que tienen problemas de redireccion en las paginas, deben de crear la siguiente propiedad: friendly.redirect.enabled y ponerla a false.

Esto desde la consola administrativa del WAS del Portal, bajo resources->Resource Environment Providers


Click en WP_ConfigService->Custom properties y ahi crean la propiedad, le dan guardar y salvar en la configuracion maestra, y tendran que reiniciar el server para que aplique los cambios.

jueves, 12 de septiembre de 2013

Como arreglar el error: (engrampa:16143): GLib-GIO-ERROR **: Settings schema 'org.mate.engrampa.dialogs.add' does not contain a key named 'update'.

He hecho el upgrade de Linux Mint 14 a 15 y mi Engrampa, la aplicacion para abrir zips, jars,etc. se me ha descompuesto. Buscando en la web logre encontrar como arreglarlo pero a travez de varios posts y paginas por lo que lo dejo aqui.

Primero deben de localizar donde esta el schema por el cual esta llorando, esto lo hacemos con el siguiente comando:

find / -name org.mate.engrampa.gschema.xml

En mi maquina se encuentra en el directorio: /usr/share/glib-2.0/schemas/
Lo abrimos con el vi:

vi usr/share/glib-2.0/schemas/org.mate.engrampa.gschema.xml

Buscamos la linea en la que viene

<schema gettext-domain="@GETTEXT_PACKAGE@" id="org.mate.engrampa.dialogs.add" path="/org/mate/engrampa/dialogs/add/">

Y agregamos antes de que cierre con </schema> lo siguiente:

<key name="update" type="b">
      <default>false</default>
    </key>
    <key name="recursive" type="b">
      <default>true</default>
    </key>
    <key name="no-symlinks" type="b">
      <default>false</default>
    </key>

Le damos guardar al archivo y luego ejecutamos el siguiente comando:

glib-compile-schemas /usr/share/glib-2.0/schemas/

Listo! con eso se arregla el error.

martes, 28 de mayo de 2013

Como aplicar un fixpack a WebSphere Portal 7

Primero deben de bajarse el update Installer para el WebSphere Portal Server 7 para su SO en la pagina de IBM.

Se van a la ruta donde se encuentra instalado el portal server:
/opt/IBM/WebSphere/PortalServer

Crean la carpeta update, se cambian a ese directorio, mueven su archivo tar y lo descomprimen ahi:

mkdir update
cd update
mv /home/javier/Downloads/7.0-WP-UpdateInstaller-Linux-x86.tar .
tar xvf 7.0-WP-UpdateInstaller-Linux-x86.tar

Ahora crean dos directorios, bajo update: fixes y fixpacks:

mkdir fixes
mkdir fixpacks

Ahora copian al directorio de fixpacks los archivos fixpack y al directorio fixes los cumulative fixes.

Unzipean el fixpack

unzip 7.0.0-WP-Multi-FP001.zip

Y ponen el archivo WP_PTF_7001.ptflist en el directorio de fixes:

mv /home/javier/Downloads/WP_PTF_7001.ptflist .

Ponen la variable de entorno de WAS_HOME para que el instalador no llore:

export WAS_HOME=/opt/IBM/WebSphere/AppServer

Hay que abrir el siguiente archivo y modificar lo siguiente:

vi /opt/IBM/WebSphere/wp_profile/ConfigEngine/properties/wkplc.properties

WasPassword=ReplaceWithYourPwd  #Linea 156
PortalAdminPwd=ReplaceWithYourPwd #Linea 351

Luego ejecutan el siguiente comando:

./updatePortal.sh -fixpack -installDir "/opt/IBM/WebSphere/PortalServer" -fixpackDir "/opt/IBM/WebSphere/PortalServer/update/fixpacks" -install -fixpackID WP_PTF_7001
*el fixpackID viene en el archivo .ptflist , en mi caso instale el fixpack 1, ustedes checkenlo dependiendo el que instalen.
Y se van y se toman un cafe porque tarda como 10 minutos en instalar, si todo ha salido bien veran lo siguiente al final:
Log: ExecCmd::launch returns 0
Task 601 out of 602; End Installing fix pack 'WP_PTF_7001', component 'wp.ptf.config'.
Task 602 out of 602; Begin Completing fix pack 'WP_PTF_7001'
Task 602 out of 602; End Completing fix pack 'WP_PTF_7001'
subTmpDir to be cleaned up: /tmp/ptfs
Fix pack installation completed successfully.
chmod -R 550 /opt/IBM/WebSphere/PortalServer  done!
UpdateInstaller.puiReturnCode is 0
End of [ ./updatePortal.sh ]

Y para los fixes ejecutan el siguiete comando:
./updatePortal.sh -fix -installDir "/opt/IBM/WebSphere/PortalServer" -fixDir "/opt/IBM/WebSphere/PortalServer/update/fixes" -install -fixes PM53918
Y veran lo siguiente si todo sale bien:
Log: ExecCmd::launch returns 0
Task 605 out of 606; End (1 of 1) Installing fix PM53918.installing component 604 of 604: wp.ptf.config. 
Task 606 out of 606; Begin (1 of 1) Installing fix PM53918.completing installation
Task 606 out of 606; End (1 of 1) Installing fix PM53918.completing installation
subTmpDir to be cleaned up: /tmp/efixes
chmod -R 550 /opt/IBM/WebSphere/PortalServer  done!
Fix installation completed successfully.
UpdateInstaller.puiReturnCode is 0
End of [ ./updatePortal.sh ]

viernes, 3 de mayo de 2013

Como Aplicar un Fixpack al WebSphere Application Server 7

Primero antes que nada deben de bajarse el Update Installer para el software de WebSphere para su plataforma, en mi caso es un Linux de 64 bits, lo pueden encontrar en el siguiente link: Update Installer.

Una vez bajado lo descomprimen en la carpeta que quieran, les va a crear una carpeta llamada UpdateInstaller. Dentro de esta carpeta se encuentra un archivo llamado responsefile.updiinstaller.txt lo copian en un archivo nuevo para modificarlo.
cp responsefile.updiinstaller.txt responsefile.txt
Lo abren y se van a las siguientes lineas:
-OPT silentInstallLicenseAcceptance="true" //Linea 43 para aceptar los terminos

-OPT disableOSPrereqChecking="true"  //Linea 69 para que no revise el OS

-OPT installLocation="/opt/IBM/WebSphere/UpdateInstaller" //Linea 113 para ver donde lo instalaran

Lo guardan y en el mismo directorio se encuentra el ejecutable de install, como aquí no somos de ventanitas, por eso hemos modificado el archivo, para correr todo en la linea de comando tecleamos:
./install -options "responsefile.txt" -silent

Si todo salio bien, verán la carpeta UpdateInstaller donde le especificaron que lo hiciera.
Pues bien ya han instalado el instalador de fixpacks, si es raro pero así debe de ser. Ahora deben de bajar el archivo .pak del fixpack que quieren aplicar, este archivo lo deben de poner en el directorio:
/opt/IBM/WebSphere/UpdateInstaller/maintenance/

De igual forma hay un directorio llamado:
/opt/IBM/WebSphere/UpdateInstaller/responsefiles

Y ahí un archivo llamado install.txt, lo copiamos para dejarlo de base:
cp install.txt myInstall.txt
Lo abren y modifican la siguiente linea:
-W product.location="/opt/IBM/WebSphere/AppServer" //Linea 104 donde esta el AppServer


Antes que nada deben de verificar que no esta corriendo ningún WAS para que no existan posibilidades de que ocurra algún error en la actualización, si hay alguno corriendo, apagenlo.
Y con eso teclean lo siguiente bajo el directorio de UpdateInstaller, recuerden nada de ventanitas aquí puro rockstar de la command line ;) :
./update.sh -options responsefiles/myInstall.txt -silent

Para ver el log de la instalación pueden hacerlo así:
tail -f /opt/IBM/WebSphere/UpdateInstaller/logs/tmp/updatelog.txt

Si todo salio bien al final de ese log verán algo así como:
(May 3, 2013 4:46:08 PM), Install, com.ibm.ws.install.ni.ismp.actions.SettleNIFRegistryAction, msg1, Current install/uninstall process is successful. Process type is: maintenance

(May 3, 2013 4:46:08 PM), Install, com.ibm.ws.install.ni.ismp.actions.SetExitCodeAction, msg1, CWUPI0000I: EXITCODE=0

(May 3, 2013 4:46:08 PM), Install, com.ibm.ws.install.ni.ismp.actions.ISMPLogSuccessMessageAction, msg1, INSTCONFSUCCES

jueves, 18 de abril de 2013

Como implementar en las cookies de sesión los flags "HttpOnly" y "Secure" en WebSphere Application Server 7



Primero para habilitar el secure flag en la cookie de sesion JSESSIONID, abres la consola del WAS y abres el menú Servidores -> Tipos de Servidores ->WebSphere Application Servers -> (el nombre de tu servidor) -> expandes el menú de Web Container Settings -> Web Container -> 
Session management -> Click en el link Enable cookies -> Das click en el checkbox que dice Restrict cookies to HTTPS sessions.


Le das click en Apply y guardas los cambios en la configuración maestra.

Ahora para habilitar el HttpOnly necesitamos crear una propiedad en el servidor de aplicaciones llamada: com.ibm.ws.webcontainer.httpOnlyCookies 


En la consola del WAS y abres el menu Servidores -> Tipos de Servidores ->WebSphere Application Servers -> (el nombre de tu servidor) -> expandes el menú de Web Container Settings -> Web Container -> Click en Custom properties -> En la pagina de Custom properties dar click en el botón de New -> en name le pones: com.ibm.ws.webcontainer.httpOnlyCookies y en value:


Le das click en Apply y guardas los cambios en la configuracion maestra.
Por ultimo reinicias el servidor para que agarre los cambios totalmente.

lunes, 1 de abril de 2013

Como instalar WebSphere Portal Server 7 en Linux Mint 14

Recientemente cambie de laptop en la empresa y opte por instalar mis herramientas de trabajo desde cero, por lo que volví a instalar el WebSphere Portal 7 y aquí les dejo las instrucciones para hacerlo en la distro de Linux Mint 14, distribucion basada en Ubuntu por lo cual esta guia aplica para ambas distros.

Primero como saben la instalación del portal requiere de 5 paquetes que son descargados desde la pagina de IBM, descomprimanlos en una misma carpeta y llamenlos de la siguiente forma según sea el caso, WPS-Install, IL-2, IL-3, IL-4, IL-5, esto para que el comando de instalación los agarre automaticamente y no les este preguntando la ubicación del siguiente paquete.

Después deben de hacer una molificación en su shell, ya que por default Ubuntu utiliza el dash shell, esto hace que se interrumpa la instalación cuando se trata de instalar el was. Para hacer esto abren una shell y ejecutan los siguientes comandos como root :

cd /bin
unlink sh
ln -s /bin/bash sh

Luego como aquí no somos de ventanitas, sino de pura shell, vamos a correr el script de instalación en la modalidad de "silent" por lo cual no tendremos que introducir ningún dato en la shell sino que los agarrara de un archivo.
Para esto nos vamos a la carpeta WPS-Install y allí viene un archivo llamado installresponse.txt, lo copian y le ponen como nombre supongamos opcionesInstallWPS.txt y lo guardan. Ya con este archivo lo que hay que cambiar se encuentra en las siguientes lineas:

-G licenseAccepted="true"   #Linea 64 
#// Para aceptar los terminos de la licencia de IBM
-W welcome.entitlement="server" #Linea 65 
#//El tipo de portal que instalaremos


-W setupTypePanel.selectedSetupTypeId="base" #Linea 84 
#//Para que instale solo lo necesario


-W globalInstall.location="/opt/IBM/WebSphere" #Linea 121 
#//El directorio base de la instalacion


-W was.location="/opt/IBM/WebSphere/AppServer" #Linea 142
#//Donde estara el WAS
-W portal.location="/opt/IBM/WebSphere/PortalServer" #Linea 143 
#//Donde estara el Portal


-W wasPanel.installChoice="install"  #Linea 161
#//Para que instale un WAS nuevo


-W wasAdmin.user="wpsadmin"  #Linea 230  
#//Usuario administrador del WAS/Portal
-W wasAdmin.password="mypassword"  #Linea 231  
#//Password el Administrador


-W nodeHost.nodeName="DefaultNode" #Linea 249
#//Nombre del nodo


-W nodeHost.hostName="portal.mydomain.com" #Linea 267 
#// hostname del Portal


Lo modifican y lo guardan. En base al cambio de la linea 267, hay que agregar el dominio que pusieron en el archivo /etc/hosts por lo que lo abren como root y le agregan la siguiente linea:

127.0.0.1       portal.mydomain.com

Para evitar problemas de permisos de ejecución le damos permisos a las 5 carpetas de que se puedan ejecutar con los siguientes comandos:

chmood -R 744 WPS-Install

chmood -R 744 IL-2

chmood -R 744 IL-3

chmood -R 744 IL-4

chmood -R 744 IL-5


Ya con todo esto, ya tenemos todo listo para correr el script de instalación así que ejecutamos el siguiente comando como root:

./install.sh -options opcionesInstallWPS.txt


Para ver que es lo que esta ocurriendo mientras se ejecuta el script de instalación, en la carpeta /tmp se crean los siguientes archivos: wpinstalllog.txt y installmessages.txt .

Si todo ha salido bien, veremos el siguiente mensaje al final del archivo installmessages.txt :

EJPIC0004I: The installation has completed successfully.


martes, 16 de octubre de 2012

Como recuperar el GRUB dañado en Ubuntu

Pues después de 7 años de trabajar con Linux, llego ese momento en el cual corrompí mi GRUB cuando le aplique las actualizaciones que me pedía el Ubuntu.
Al reiniciar la computadora después de la actualización me salia un mensaje en el cual decía que la partición no era reconocida.
Entonces después de entrar en pánico por un par de horas, pude restaurar el GRUB y todo volvió a ser como antes, así que les dejo las instrucciones de como lo hice.

Lo primero que necesitan es un Live CD de Linux. En mi caso como uso Ubuntu pues yo tenia por ahí un cd.
Ya que arranca el sistema operativo, se abren una terminal y ponen los siguientes comandos:

$ sudo fdisk -l

Esto para listar las particiones que tiene el disco duro, por lo general la partición es sda1, así que yo proseguí con el siguiente comando;

$ sudo mount /dev/sda1 /mnt

Después montamos todos los directorios necesarios:

$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /dev/pts  /mnt/dev/pts
$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys  /mnt/sys

Y luego utilizamos el siguiente comando para acceder al file system de nuestra partición:

$ sudo chroot /mnt

Ya con nuestro filesystem restaurado, procedemos con el siguiente comando, ojo que no es sda1 sino sda.

# grub-install --recheck /dev/sda 

Reinician la maquina y listo, su computadora ya podrá arrancar, o al menos a mi me ha funcionado 2 veces, pues a un compañero de trabajo le paso lo mismo después de aplicar la actualización de paquetes de Ubuntu.