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.