Création d’une portlet sous Netbeans

Le processus de création d’une portlet est un processus simple sous netbeans.

Ce tutoriel est la suite d’un article sur l’installation de netbeans et du portal pack.

Il utilise les composants du portal pack.

Installation de Portlet container

Nous allons télécharger le server d’entreprise « Portlet container » sur le site de java.net.

Pour procéder, à l’installation, nous avons 2 méthodes :

  • Un double clique sur le fichier portlet-container-configurator.jar
  • Taper la commande suivante dans une fenêtre dos ou shell : java -jar portlet-container-configurator.jar

Vous obtiendrez la fenêtre suivante :

Installation de portlet container

Il est possible d’installer Portlet Container sur divers serveurs d’application java.

  • GlassFish
  • Tomcat
  • Jetty
  • WebLogic
  • Jboss

Pour tomcat :

Configuration tomcat

Pour GlassFish :

Configuration Glassfish

Le status informe l’utilisateur sur la bonne installation du produit.

Fin installation portlet container

Après l’installation, il est possible de voir le portlet container, à l’url suivante :

http://localhost:8080/portletdriver

Warning:

J’ai rencontré un certain nombre de bug lors de l’installation et la configuration du lien entre netbeans et portlet container. Je préconise l’utilisation de GlassFish qui me semble fonctionne le mieux. Le reste du tutoriel est valide, par contre le déploiement de la portlet devra être réalisé via la console d’administration du portlet container.

Désolé.

La génération de la structure de la portlet

Nouveau projet

Nous allons commencer par créer un nouveau projet portlet web sous netbeans.

  • Cliquer sur le menu « File », « New Project ».

Nouveau projet web

  • Nous allons sélectionner la catégorie « Java web » et le modèle de projet (project 🙂  « Web application ».
  • Cliquer sur le bouton « Next ».

Nous allons sélectionner le Serveur d’application, pour faire fonctionner notre portlet. Pour l’instant, je définis le serveur d’application Tomcat, nous verrons plus tard comment modifier le serveur, et associer un vrai portail d’entreprise.

  • Sélectionner le serveur Tomcat 6.0.20.
  • Cliquer sur le bouton « Next« .

Nous allons préciser le nom du projet et le répertoire de sauvegarde du projet.

  • Saisir le nom et le répertoire du projet.
  • Cliquer sur le bouton « Next« .

Nous allons définir les librairies ou les frameworks qui seront utilisés dans le projet.

  • Sélectionner la librairie « Portlet support« .
  • Sélectionner la version de la librairie « 1.0 » pour la version JSR 186.
  • Nous allons définir le package et cocher les diverses cases « Create portlet » et « Create jsps« .
  • Nous allons cliquer sur le bouton « Finish ».

La structure d’une portlet

Le corps et la structure de la portlet sont générés.

Dans une portlet, nous avons 3 types de fichiers

  1. Les fichiers JSP
  2. Les fichiers source java (traitement)
  3. Les fichiers de configuration de la portlet
  • Les fichiers JSP représente la vue du client (ci-dessous Helloportlet_view.jsp).
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

<%-- Uncomment below lines to add portlet taglibs to jsp
<%@ page import="javax.portlet.*"%>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>

<portlet:defineObjects />
<%PortletPreferences prefs = renderRequest.getPreferences();%> 
--%>

<b>
    HelloPortlet - VIEW MODE
</b>
  • Les fichiers source java contiennent la partie traitement de la portlet (helloportlet.java)
import javax.portlet.GenericPortlet;
import javax.portlet.ActionRequest;
import javax.portlet.RenderRequest;
import javax.portlet.ActionResponse;
import javax.portlet.RenderResponse;
import javax.portlet.PortletException;
import java.io.IOException;
import javax.portlet.PortletRequestDispatcher;

/**
 * HelloPortlet Portlet Class
 */
public class HelloPortlet extends GenericPortlet {

    public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException {

    }

    public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
        response.setContentType("text/html");        
        PortletRequestDispatcher dispatcher =
                getPortletContext().getRequestDispatcher("/WEB-INF/jsp/HelloPortlet_view.jsp");
        dispatcher.include(request, response);
    }

    public void doEdit(RenderRequest request, RenderResponse response) throws PortletException, IOException {
        response.setContentType("text/html");        
        PortletRequestDispatcher dispatcher =
                getPortletContext().getRequestDispatcher("/WEB-INF/jsp/HelloPortlet_edit.jsp");
        dispatcher.include(request, response);
    }

    public void doHelp(RenderRequest request, RenderResponse response) throws PortletException, IOException {

        response.setContentType("text/html");        
        PortletRequestDispatcher dispatcher =
                getPortletContext().getRequestDispatcher("/WEB-INF/jsp/HelloPortlet_help.jsp");
        dispatcher.include(request, response);
    }
}
  • Les fichiers de configuration permettent de configurer le comportement de la portlet.

Le fichier web.xml contient le descripteur de l’application web , le fichier portlet.xml contient toutes les propriétés de la portlet.

Le fichier portlet.xml

<?xml version='1.0' encoding='UTF-8' ?>
<portlet-app xmlns='http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd' version='1.0'>
    <portlet>
        <description>HelloPortlet</description>
        <portlet-name>HelloPortlet</portlet-name>
        <display-name>HelloPortlet</display-name>
        <portlet-class>com.test.HelloPortlet</portlet-class>
        <expiration-cache>0</expiration-cache>
        <supports>
            <mime-type>text/html</mime-type>
            <portlet-mode>VIEW</portlet-mode>
            <portlet-mode>EDIT</portlet-mode>
            <portlet-mode>HELP</portlet-mode>
        </supports>
        <resource-bundle>com.test.messages</resource-bundle>
        <portlet-info>
            <title>HelloPortlet</title>
            <short-title>HelloPortlet</short-title>
        </portlet-info>
    </portlet>
</portlet-app>

Toutes les portlets sont construites sur le même modèle.

Exécution de la portlet

Nous allons lancer l’exécution de la portlet.

  • Cliquer avec le bouton droit de la souris, sur le projet.
  • Sélectionner la commande « run« 

L’outil Netbeans ouvre une fenêtre output:, puis lance le serveur d’application Tomcat.

Après, quelques minutes, l’outil netbeans ouvre un navigateur, et afficher le contenu de la portlet dans Portlet Container.

run a portlet

Le résultat de la portlet apparait dans votre navigateur internet.

Il est possible de déployer une ou des portlets en passant par la console d’administration de Portlet Container.

  • Http://localhost:8080/portletdriver/admin

Console administration Portlet Container

Il suffit de cliquer sur le bouton « Parcourir », de sélectionner la portlet et de cliquer sur le bouton « Deploy ».

Pour conclure

Le tutoriel ci dessus, est très simple. Il permet de construire l’ossature , le squelette d’une portlet et de découvrir l’éditeur Java Netbeans. L’outil de test Portlet container est l’implémentation de référence des normes portlet JSR 186 et JSR 286 de Sun / Oracle, il est léger et facile à mettre en œuvre dans le cadre d’un développement. Il garantit le respect des normes et la portabilité des portlets vers d’autres portails d’entreprise.

A propos Duarte TERENCIO

Architecte Solutions
Cet article, publié dans Portail d'entreprise, Programmation, est tagué , , , , . Ajoutez ce permalien à vos favoris.

2 commentaires pour Création d’une portlet sous Netbeans

  1. Ping : Création d’une portlet sous Netbeans | Portail d'entreprise, ITIL et cloud | Scoop.it

  2. Ce tutoriel est très utile et très explicite pour la création d’une portlet

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.