Tag Archives: JSF

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

Alterar o posicionamento do componente growl do PrimeFaces

O componente growl, por padrão, é exibido no canto superior direito. As definições de estilo dos componentes do PrimeFaces ficam no arquivo primefaces-3.5.jar, no arquivo META-INFresourcesprimefacesprimefaces.css.

Para alterar o local de apresentação na tela, você precisa apenas redefinir o CSS abaixo.

<h:head>
<style>
.ui-growl{
	position:fixed;
	top:50%;
	right:50%;
	width:301px;
}
</style>
</h:head>