Criando um portlet para o GateIn

January 24th, 2010 by rafaelliu Leave a reply »

Já vimos que portlets são na verdade aplicações web que podem ser reutilizadas, vamos ver nesse post como criar essas aplicações web. Para quem usa o Eclipse para criação e publicação de aplicações no JBoss está em casa. Vamos precisar:

  • Eclipse JEE
  • GateIn 3 Beta5 para JBoss

Primeiramente vamos criar uma Dynamic Web Project comun no Eclipse e crie um novo Target Runtime.

Selecione JBoss 5.0 e peça para criar um server, aponte esse servidor para o local de instalação do GateIn:

Agora que temos nosso projeto criado, vamos precisar adicionar as bibliotecas do GateIn localizadas em <JBOSS_HOME>/server/default/deploy/gatein.ear/lib ao Build Path:

Portlets são muito similares a servlets: assim como estendemos a classe HttpServert para criar servlets, estendemos a classe GenericPortlet para gerar portlets. Crie a seguinte classe:

public class VaiPlanetaPortlet extends GenericPortlet {
 
	@Override
	protected void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
		response.getWriter().print("Vai Planeta!!");
	}
 
}

Note os parâmetros request e response e o print(), não lembra servlets? Agora só falta declarar esse nosso portlet! De novo fazendo uma analogia a servlets: do mesmo modo que servlets são declarados no web.xml, portlets são declarados no portlet.xml. Crie então um arquivo portlets.xml no WEB-INF com o seguinte conteúdo:

<?xml version="1.0" encoding="UTF-8"?>
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" version="2.0">
	<portlet>
		<portlet-name>VaiPlanetaPortlet</portlet-name>
		<portlet-class>net.rafaelliu.VaiPlanetaPortlet</portlet-class>
 
		<supports>
			<mime-type>text/html</mime-type>
		</supports>
 
		<portlet-info>
			<title>Portlet Vai Planeta</title>
		</portlet-info>
	</portlet>
</portlet-app>

Pronto, já temos nosso portlet. Faça deploy dele como faria com uma aplicação web comun e importe o portlet no GateIn.

Advertisement

4 comments

  1. Thiago R.S.S. says:

    Vai planeta foi a melhor parte!!
    Hahahhahaahhaha

  2. Outro Thiago says:

    acho que é portlet.xml (singular)

  3. rafaelliu says:

    É sim, Outro Thiago. Obrigado!

    Já editei o post.

  4. Luiz says:

    Todas fezes que acessamos um menu no Gatein ele mantém o estado anteriores dos componentes do JSF, gostaria que todas as vezes em que clicasse no menu ele reiniciasse a árvore de componentes do meu portlet. Tem jeito?

Leave a Reply