Tag Archives: Portlet

Bysutradi

Usando Cookies em Portlets com JSF 2 no IBM WebSphere Portal 8

Para se usar Cookies em portlets (JSR 286), de acordo com a especificação, bastaria apenas adicionar o XML abaixo no arquivo portlet.xml e implementar o método doHeaders no Portlet.

<container-runtime-option>
	<name>javax.portlet.renderHeaders</name>
	<value>true</value>
</container-runtime-option>

Porém, se você requer usar Cookies em portlets (JSR 286) com JSF 2 no IBM WebSphere Portal, encontrará o problema abaixo:

[14/02/14 12:03:12:180 BRST] 0000006d servlet       E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: An exception was thrown by one of the service methods of the servlet [PortletMensagem] in application [PA_PortletMensagem]. Exception created : [java.lang.NullPointerException
	at com.ibm.faces20.portlet.FacesPortlet.init(FacesPortlet.java:131)
	at com.empresa.mensagem.PortletMensagemPortlet.init(PortletMensagemPortlet.java:38)
	at javax.portlet.GenericPortlet.init(GenericPortlet.java:107)

Diante deste cenário, pensamos em soluções alternativas definitivas (também chamada de POG) para conseguir chegar no resultado esperado.

Paralelamente ao andamento da implementação que a equipe estava fazendo, INCONFORMADO, resolvi procurar a tal classe que apresentava o erro e verificar (decompilar) o que ela estava fazendo.

Após verificar o que a classe estava fazendo, consegui entender o problema e encontrar a solução.

Juntamente com a opção “renderHeaders”, também necessitaríamos adicionar a opção “actionScopedRequestAttributes”. Veja como ficou nosso portlet.xml agora.

<container-runtime-option>
	<name>javax.portlet.renderHeaders</name>
	<value>true</value>
</container-runtime-option>
<container-runtime-option>
	<name>javax.portlet.actionScopedRequestAttributes</name>
	<value>true</value>
</container-runtime-option>

Após a adição destes dois itens, o portlet passou a entrar normalmente no doHeaders e conseguimos manipular os Cookies.

Bysutradi

JSR 362: Portlet Specification 3.0

Lendo sobre a publicação de algumas JSR, encontrei uma que até então não tinha conhecimento: JSR 362: Portlet Specification 3.0.

Trata-se de uma nova versão para a implementação de portlets contendo as requisições abaixo:

  • Align with JEE 7 Specifications
  • Specify how resources can be shared between portlets
  • Improve support for mobile devices
  • Improve client-side support
  • Optimize support for Java Server Faces
  • Add Web Socket Support
  • Align portlets with the with OpenSocial standard
  • Extend the portlet eventing capability
  • Alignment with a future version of the WSRP specification
  • Additional extensions, corrections and clarifications to JSR 286

Esta JSR vem para mudar atualizar a especificação 2.0 que está disponível há mais de 5 anos (usando JavaEE 1.4) e deixaram os produtos um pouco defasados com as recentes atualizações da plataforma JavaEE, suas especificações e novos paradigmas de programação.

Esta JSR está na fase de formação dos membros, que de momento são:

  • eXo Platform
  • IBM
  • Liferay
  • Oracle
  • Red Hat

Senti falta da participação da OpenText, já que seu produto é um dos líderes de mercado em Web Content Management (junto com IBM e outros) de acordo com o Gartner.

Resta esperar o começo das atividades e liberação da primeira revisão. Esta JSR está prevista (inicialmente) para ser finalizada no fim de 2014, o que nos garantirá muitos lançamentos de produtos destes 5 concorrentes em 2015. Até lá, provavelmente estas empresas lançarão uma versão de seus produtos com algumas melhorias de funcionalidades para não ficaram estagnadas aguardando a finalização desta JSR.