Title: Les portails
1Les portails
- 1) Les Portails
- 2) JetSpeed
- 3) Démonstration JetSpeed
Julien BURET Arnaud AUNE DESS Informatique Option
SRR
2Contexte
- Les portails sont nés du constat que
linformation sur lInternet et les intranets est
diffuse et pas du tout structurée. - Linternaute est débordé par le nombre doutils
en tout genre. - souhait dune approche plus simple et unifiée.
3Contexte
- Visent à regrouper sous un accès unique
- Un espace informationnel de recherche
- Un espace communautaire de partage
- Un espace personnalisé de services
- Caractéristiques
- Point daccès unique
- Organisation des informations accessibles et des
applications disponibles - Personnalisation des services offerts,
individuelle ou par groupe - Contrôle daccès centralisé et gestion des
utilisateurs
4Définition générale
- Un portail, quest ce que cest ?
- Un portail est un point dentrée sous forme
dapplication Web regroupant un certains nombres
de services et de contenues à un ensemble de
clients.
5Les Portails
- Vise à remplacer le bureau.
- avantages
- Ils sont accessibles de nimporte quel poste
- Ils sont personnalisés
- Les services augmentent calendrier, agenda,
répertoire en ligne, traitement de texte, un
tableur - Des obstacles restent à surmonter
- les temps de chargement
- les coûts de connexion
- la largeur de la bande passante
- Selon un responsable de Netcenter (Netscape) les
bureaux représenteraient lévolution naturelle
des portails.
6Les principaux portails web
- Les moteurs ou annuaires de recherche
- Yahoo!, Voilà,
- Site des fournisseurs daccès
- Aol.com, wanadoo.fr,
- Site de logiciel de navigation
- msn.com (Microsoft) , netcenter.com (Netscape)
- Les éditeurs de contenu
- Hachette.fr, go.com (Disney),
- Portail spécialisé ou privé
- Portail dentreprise, site de communauté
7Différents type de portails Web
- Portail généraliste ou horizontal
- 1er types de portail apparu
- Regroupe le maximum dinformations de tous les
thèmes sur un seul site. - Point dentrée sur le Web
- Yahoo, Altavista, Site Web des providers (Aol,
Wanadoo, Free, ).
8Différents type de portails Web
- Portail spécialisé ou vertical
- Portail spécialisé dans un thème donné
- Portail dentreprise ou inter-entreprise
- Il regroupe et partage des ressources pour un
groupe de client ayant un intérêt commun.
9Les portails horizontaux
- But
- Attirer un maximum de client sur le serveur
- Vendre de lespace aux annonceurs (Estimation
2000 8 Milliards de dollars). - Prendre des commissions sur des transactions
- Vendre des services améliorés aux clients (boite
aux lettres plus grande avec plus de
fonctionnalités). - Moyen mis en œuvre
- Fournir et ordonner du contenu et des services
pour attirer un maximum de clients
10Les portails horizontaux. Lexemple Yahoo!
- Au début un annuaire de sites classés par thèmes.
- Dans le but de garder les clients après la
consultation des annuaires création de services
comme les calendriers, les carnets dadresses
11Les portails horizontaux. Lexemple Yahoo!
- Maintenant les principales activités de Yahoo!
sont lagrégation de contenue - Le service de news de Yahoo! regroupe les
informations publiés par dautres site et les
classes - Le service de mail
- Yahoo! Messager
- Jeux en ligne
- Chat
- Page personnalisée à un utilisateur
- Boutique
- Services de plus en plus évolués comme la
personnalisation de page (MyYahoo!)
12Exemple yahoo
13Les portails verticaux
- Regroupe les sites de communautés et les portails
dentreprises. - Spécialisés dans un domaine unique.
14Sites de communautés
- Le but est proche des portails horizontaux. Ils
cherchent à créer un annuaire de personnes
intéressées par un même thème (permet des
annonces beaucoup plus ciblées).
15Portails dentreprise
- Le but de ces portails est de faciliter et de
regrouper laccès au différents systèmes
dinformations dune entreprise. - Pour facilité la lecture et la mise à jour par
les employés. - Pour présenter de linformation à des clients ou
à des partenaires. - Beaucoup de produits commerciaux spécifiques
existent pour créer ces types de portails.
16Développement de portails
- Pourquoi un portail
- Les outils de développements
17Pourquoi développer un portail dans une entreprise
- Un utilisateur doit utilisé un grand nombre
dapplication pour accéder à toutes les
informations de lentreprise. - Multiplicité des formats de données, des IHM,
informations présentées de façon désordonnées.
18Pourquoi développer un portail dans une entreprise
- Le but est quune application interroge elle-même
les applications, puis traitent les données pour
les présentées de façon ordonnée et unifiée.
Lutilisateur y accédera dune façon unique, en
général un navigateur.
19Apport dun système de portail
- Un accès simplifié aux informations et aux
applications intranet - Intégration de contenus tiers
- Constitution despaces de travail et daccès à
linformation - Personnalisation des services
- Gestion de laccès au différentes données de
lentreprise (single sign-on)
20(No Transcript)
21(No Transcript)
22Fonctionnalités attendues des différents systèmes
de portails
- Agrégation de contenu
- Collecte dinformations sur des sources internes
ou externes, puis présentation de ces données de
façon unifiée. - Organisation de contenu
- Classement des données de lentreprises.
- Personnalisation des services
- Adapter laccès aux informations par
lintermédiaire de profils utilisateurs - Accès au contenu
- Moteur de recherche et indexation
23Fonctionnalités attendues des différents systèmes
de portails
- Information et diffusion du contenu
- Service de diffusions sélectives dinformations
ou dalertes - Communication et travail collaboratif
- Mail, forum, agenda partagé, éditeur de documents
collaboratifs - Services à valeur ajouté
- Synthèse de documents évolués (analyse
sémantique), traduction automatique - Administration et sécurité
- Contrôles des accès, annuaire dentreprise,
statistiques, pare-feu
24Fonctionnalités attendues des différents systèmes
de portails
- Les différents produits fournissent un ou
plusieurs de ces services. - Avant de choisir un produit il faut avoir bien
cerné les besoins de lentreprise choisir un
produit en fonction de ses priorités. Peu de
produits fournissent tous types de services. Ou
alors on peut utiliser des produits plus généraux
qui nécessiteront le développement des différents
services.
25Les différents produits de création de portails
- 2 types doutils de création de portails.
- Des infrastructures de portails. Elles
fournissent les outils de bases à la création de
tout types de portails. - Des portails beaucoup plus spécifique souvent
très spécialisés dans un domaine
26Panorama des produits du marché
27Exemples de portailJETSPEED
return
28Exemples de portailMediapps Net.Portal
29Exemples de portailOracle Portal Online
30Exemples de portailWebsphere
31Présentation dune infrastructure de portail
JETSPEED
- Architecture
- Portlet
- Les fichiers de configuration
- Démonstration
32JetSpeedIntroduction
- JetSpeed
- Open source
- Conçu pour créer un portail rapidement
- Rend accessible les ressources distantes
- Accessible par le WEB et le WAP
- JAVA PORTLET API
- Sécurité
- Utilisateur, groupe, rôle
- Single Sign On
- une base de données interne Hypersonic-SQL
-
- Services déjà implémentés
- Cache
- Persistance
- Personnalisation
- Authentification
installation
33JetSpeedArchitecture
34JetSpeedArchitecture introduction
- JetSpeed regroupe les projets suivant
- turbine un framework permettant de se connecter
à un base de données et de gérer laffichage, les
utilisateurs et les sessions. - Velocity traite les fichiers templates.
- ECS génère du HTML et XML à partir dobjets
JAVA. - On peut se servir aussi des projets suivants
- cocoon permet de générer du HTML à partir de
XML et XLS. - Xerces et Xalan est un support XML et XSL.
- Castor rend les objets java persistant.
- JetSpeed se sert de RSS et OCS pour rapatrier des
données à partir de sites distants.
35JetSpeedArchitecture globale (1/3)
36JetSpeed Architecture globale (2/3)
- Jetspeed
- ?
- Portlet API
- ?
- Turbine
- ?
- JServ/Jakarta
- ?
- Apache HTTPD
37JetSpeed Architecture globale (3/3)
- Affichage
- ?
- PortletController
- ?
- Plusieurs PortletControl
- ?
- Une portlet par portletControl
38JetSpeedArchitecture - ESC
- La portlet utilise des éléments de construction
(ECS API) en objet java. - ECS support WML, HTML
- open source
- Lavantage de ECS est quil fait du code propre.
- ECS est limité à HTML et XML pour linstant.
39JetSpeedArchitecture ESC exemple
- Html html new Html()
- .addElement(new Head()
- .addElement(new Title("Demo")))
- .addElement(new Body()
- .addElement(new H1("Demo Header"))
- .addElement(new H3("Sub Header"))
- .addElement(new Font().setSize("1")
- .setColor(HtmlColor.WHITE
) - .setFace("Times")
- .addElement("The big dog
the little cat chased each other."))) - out.println(html.toString())
- // or write to the outputstream directly
- output(out)
40JetSpeedArchitecture RSS
exemple
- RSS Rich Site Summary
- Le format RSS est basé sur XML
- Légers, multi but, format d importation/exportati
on de données, description de métas données - Avantages
- Permet de rendre disponible des informations pour
dautres sites - Une application personnel peut y accéder
41JetSpeedArchitecture OCS
exemple
- OCS Open Content Syndication
- Le format OCS est basé sur XML
- Multi cannaux aux formats différents
- Il peut aussi utiliser RDF (Resource Description
Framework) et DC (Dublin Core). Langages
permettant léchanger des descriptions de
ressources sur le Web. - xmltree.com. plus de 1700 canaux.
42JetSpeedLes Portlets
- Les Portlets
- Définition
- API
43JetSpeedPortlet - Définition
- concept populaire
- décrit linterface utilisateur ayant la capacité
dêtre personnalisée - met à disposition du contenu, donne accès à une
application ou un service - Jetspeed inclut quelques portlets
- RSSPortlet permet de voir les documents au format
RDF - FileServerPortlet permet de mettre à disposition
des pages HTML - CocoonPortlet permet de transformer du XML via
XSL - PortletViewerPortlet permet dafficher des
informations additionnelles sur une portlet
44JetSpeedPortlet - API
- Pour avoir une portlet fonctionnelle
- étendre la classe AbstractPortlet
- implémenter la méthode getContent(RunData
aRunData) - Renvoie un ConcreteElement de ECS
- Les Portlets peuvent interagir avec le service
turbine par le biais de lobjet RunData. - Pour avoir un contrôle total sur la portlet
- étendre le classe Portlet
- Beaucoup de méthodes à implémenter
- Une autre méthode intéressante, valable pour les
deux types de portlet, est supportsType(). Elle
permet de savoir quel type de document (WML ou
HTML) supporte le client.
45JetSpeed
- Les fichiers de configuration
- Fichiers template
- Fichiers .xreg
- Fichiers PSML
46JetSpeedFichiers de configuration (1/5)
- Pour configurer le portail
- linterface Web
- directement dans les fichiers
- Chaque utilisateur, groupe et rôle a ces propres
- fichiers.
- La page daccueil compte anon
47JetSpeedFichiers de configuration (2/5)
- Les fichiers du cadre autour
- Fichiers templates
- Dans
- ltJETSPEED-HOMEgt\WEB-INF\templates\vm
- Screens propriétés pour le contenu
- navigations top.vm, left.vm, bottom.vm
- Layouts appel les différentes composantes de
navigation
48JetSpeedFichiers de configuration (3/5)
- Exemple
- plusieurs niveaux dabstraction
- PortletControl
- PortletController
49JetSpeedFichiers de configuration (4/5)
- Les fichiers .xreg ? rendre disponible une
portlet - 3 sortes dentrées
- instance doit fournir toutes les informations
nécessaires - abstract pas instantiable ? portlet template
- ref une référence
- Page HTML
- Page JSP
- RSS
- Base de données
50JetSpeedFichiers de configuration (5/5)
exemple
- PSML Portal Structure Markup Language
- Fichiers ou base de données.
- Un fichier par utilisateur, groupe, rôle.
- Ils mémorisent
- Les portlets à afficher
- Lagencement
- propriétés
- Deux parties
- Registry constitué dune liste dentrée (.xreg)
- Site ? 5 types denregistrement
- Entry décrit une portlet (référence)
- Portlets décrit un groupe de Portlet
(PortletSet) - Controller décrit le portletController associé
au PortletSet. Stratégie daffichage - Control décrit le portletControl associé au
portlet. Cest un attribut de Portlets ou Entry - Reference fait référence à un autre fichier
PSML.
51JetSpeed
- La Démonstration.
- Limplémentation
- Configuration
- Graphique
- Manuelle
- Portlets de JetSpeed
52JetSpeedDémonstration (1/2)
- Implémentation de quelques portlets
- créer une page WEB (HTML) Portlet
- créer une page WAP (WML) Portlet
- créer une page WML ou HTML Portlet
- récupérer des données par SOAP Portlet
- Utilisation de portlet de JetSpeed
- accéder à une page HTML locale utilisation
- accéder à une page HTML externe utilisation
- accéder à une base de données utilisation
- Il faut enregistrer les portlets dans un fichier
PSML - (ltJETSPEED-HOMEgtWEB-INF/conf/nom.xrep).
53JetSpeedDémonstration (2/2)
- Pour que les portlets soit visible ? il faut les
ajouter dans le fichier de configuration de
lutilisateur dédié à la page darrivée du
portail. - ltJETSPEED-HOMEgt\WEB-INF\psml\user\anon\html\defaul
t.psml. - Cette étape peut être faite par le biais de
linterface. - Exemple
- ltentry id"P-ef1547a162-10018 parent"DatabaseBro
wserTest"gt - ltparameter name"sql" value"select from
coffees"/gt - ltparameter name"windowSize" value"10"/gt
- lt/entrygt
54JetSpeedConclusion
- JetSpeed assure
- La personnalisation
- Laccès à des ressources variées
- Lintégration dapplications variées
- Les améliorations attendues
- Compléter la documentation.
- Organiser les fichiers de configuration.
55PortailsLes Sources
- InfoNewScreen
- JDNETsolutions
- Jakarta.apache.org/jetspeed
56JetSpeed
57JetSpeedInstallation
return
- Installation de tomcat
- Déplacer jetspeed.war dans lttomcat_homegt\webapps\
- À ladresse http//localhost8080/jetspeed/ Créer
un nouvel utilisateur.
58JetSpeedArchitecture RSS - exemple
- lt?xml version"1.0"?gt lt!DOCTYPE rss PUBLIC
"-//Netscape Communications//DTD RSS 0.91//EN"
"http//my.netscape.com/publish/formats/rss-0.91.d
td"gt ltrss version"0.91"gt lt!-- only one
channel per RSS file --gt ltchannelgt lt--
information about your channel --gt lttitlegtMy
Newslt/titlegt ltlinkgthttp//www.mynews.netlt/link
gt ltdescriptiongtYour source for your news
lt/descriptiongt ltlanguagegten-uslt/languagegt
ltimagegt lttitlegtMy Newslt/titlegt
lturlgthttp//www.mynews.net/logo.giflt/urlgt
ltlinkgthttp//www.mynews.netlt/linkgt
ltwidthgt88lt/widthgt ltheightgt31lt/heightgt
ltdescriptiongtYour source for your news
lt/descriptiongt
59JetSpeedArchitecture RSS - exemple
- lt/imagegt lt!-- here starts the real news, max.
15 items --gt ltitemgt lttitlegtWe land on
Mars!lt/titlegt ltlinkgt
http//www.mars-lander.org/inthenews.html?id581 - lt/linkgt ltdescriptiongtLive report
from the Mars space station. Read more
about it in this discussion...lt/descriptio
ngt lt/itemgt ltitemgt lttitlegtj-Cars
produces a new Java carlt/titlegt
ltlinkgthttp//www.j-cars.com/press/29022007/
lt/linkgt ltdescriptiongtThe latest version
of the Java car is now available.
It includes security enhancements and
various bug fixes.lt/descriptiongt lt/itemgt
60JetSpeedArchitecture RSS - exemple
return
- lt!-- you can include a link to a form. It's
a basic text field where you can enter text
and submit data to a CGI. --gt lttextinputgt
lttitlegtSubscribelt/titlegt
ltdescriptiongtSubscribe to our mailing list by
entering your emaillt/descriptiongt
ltnamegtemaillt/namegt ltlinkgt
http//www.mynews.net/cgi-bin/subscribe.cgi
lt/linkgt lt/textinputgt lt/channelgt lt/rssgt
61JetSpeedArchitecture OCS - exemple
- lt?xml version"1.0"?gt ltrdfRDF xmlnsrdf
"http//www.w3.org/1999/02/22-rdf-syntax-ns
" xmlnsocs "http//alchemy.openjava.or
g/ocs/directory" xmlnsdc
"http//purl.org/metadata/dublin_core"gt
lt!-- This is information about this
channel listing --gt lt!-- The about attribute
points to the directory file,
usually the same file as the one being
parsed --gt ltrdfdescription about
"http//alchemy.openjava.org/ocs/ocsdirectory.rdf"
gt lt!-- This section contains information
about the channel directory listing
--gt ltdctitlegtInternet Alchemy OCS
Directory lt/dctitlegt
ltdccreatorgtIan Davis (mailtoiand_at_fdc.co.uk)
lt/dccreatorgt ltdcdescriptiongtThis is a
list of channels available at Internet
Alchemylt/dcdescriptiongt
62JetSpeedArchitecture OCS - exemple
- lt!-- This is the first channel available
--gt ltrdfdescription
about"http//alchemy.openjava.org"gt lt!--
Information about the channel --gt
ltdctitlegtInternet Alchemylt/dctitlegt
ltdccreatorgtIan Davis (mailtoiand_at_fdc.co.uk)
lt/dccreatorgt ltdcdescriptiongtInternet
Alchemy is a random collection of
elementslt/dcdescriptiongt
ltdcsubjectgtTechnology, Java, XML, Web Design
lt/dcsubjectgt ltocsimagegt
http//alchemy.openjava.org/images/alchemylogo.gif
lt/ocsimagegt lt!-- This is
the first format for this channel
--gt lt!-- Information about the RSS
version of Internet Alchemy --gt
ltrdfdescription about"http//alchemy.openjava.o
rg/alchemyrss.xml"gt ltdclanguagegtenlt/dcl
anguagegt ltocsformatgt
http//my.netscape.com/rdf/simple/0.9/
lt/ocsformatgt ltocsupdatePeriodgthourlylt/o
csupdatePeriodgt ltocsupdateFrequencygt2lt/
ocsupdateFrequencygt ltocsupdateBasegt1999
-05-30T0000 lt/ocsupdateBasegt
lt/rdfdescriptiongt
63JetSpeedArchitecture OCS - exemple
- lt!-- This is the second format for
this channel --gt lt!-- Information about
the possible scriptingNews
version of Internet Alchemy --gt
ltrdfdescription about "http//alchemy.ope
njava.org/scriptingnews.xml"gt
ltdclanguagegtenlt/dclanguagegt
ltocsformatgt http//www.scripting.com/dtd
/scriptingNews.dtd lt/ocsformatgt
ltocsupdatePeriodgtdailylt/ocsupdatePeriodgt
ltocsupdateFrequencygt1lt/ocsupdateFrequencygt
ltocsupdateBasegt1999-05-30T0000
lt/ocsupdateBasegt lt/rdfdescriptiongt
64JetSpeedArchitecture OCS - exemple
return
- lt!-- This is the third format for
this channel --gt lt!-- Information about a
plain text version of Internet
Alchemy --gt ltrdfdescription about
"http//alchemy.openjava.org/plain.txt"gt
ltdclanguagegtenlt/dclanguagegt
ltocscontentTypegttext/plainlt/ocscontentTypegt
ltocsupdatePeriodgtdailylt/ocsupdatePeriodgt
ltocsupdateFrequencygt1lt/ocsupdateFrequency
gt ltocsupdateBasegt1999-05-30T0000
lt/ocsupdateBasegt lt/rdfdescriptiongt
lt/rdfdescriptiongt lt!-- This is the
second channel available --gt
ltrdfdescription about "http//alchemy.ope
njava.org/othernews/"gt ...
lt/rdfdescriptiongt lt/rdfdescriptiongt
lt/rdfRDFgt
65JetSpeedFichiers de configurationexemple de
fichier PSML
- lt?xml version"1.0" encoding"UTF-8"?gt
- ltportlets id"01"gt
- ltmetainfogt
- lttitlegtDefault Jetspeed pagelt/titlegt
- lt/metainfogt
- ltskin name"orange-red-Bordered"/gt
- ltlayout position"-1" size"-1"/gt
- ltcontroller name"ColumnController"/gt
- ltportlets id"02"gt
- ltmetainfogt
- lttitlegtHomelt/titlegt
- lt/metainfogt
- ltlayout position"1" size"-1"/gt
- ltcontroller name"ThreeColumnsSymetric"/gt
- ltentry id"04" parent"SubsetMeetingWorksh
op"gt - ltlayout position"-1" size"-1"gt
- ltproperty name"column"
value"1"/gt - ltproperty name"row" value"1"/gt
- lt/layoutgt
66JetSpeedFichiers de configurationexemple de
fichier PSML
return
- lt/portletsgt
- lt/portletsgt
- ltportlet-registrygt
- ltportlet-entry name"ESIPFederationNews"
hidden"false" type"ref" - parent"RSS" application"false"gt
- ltmeta-infogt
- lttitlegtESIP Federation Newslt/titlegt
- ltdescriptiongtNews for ESIP Federation
(XML)lt/descriptiongt - lt/meta-infogt
- ltclassnamegtorg.apache.jetspeed.portal.portlets
.NewRSSPortlet - lt/classnamegt
- lturl cachedOnURL"true"gthttp//www.esipfed.org/
news/newsfeed.xml - lt/urlgt
- lt/portlet-entrygt
- ltportlet-entrygt
-
- lt/portlet-entrygt
- lt/portlet-registrygt
67JetSpeedDémonstrationPortlet - HTML
- public class FirstPortlet extends
AbstractPortlet public ConcreteElement
getContent (RunData aRunData) Table
table new Table()
.setBorder(0)
.addElement(new TR()
.addElement(new TD()
.addElement(new B()
.addElement("I am
bold."))))
.addElement(new TR()
.addElement(new TD()
.addElement("I'm the lower table
row."))) return table
68JetSpeedDémonstrationPortlet - HTML
- A ajouter au fichier de configuration xrep dans
ltJETSPEED-HOMEgt\WEB-INF\conf - lt?xml version"1.0" encoding"UTF-8"?gt
- ltregistrygt
- ltportlet-entry name"Portlet1" hidden"false"
type"instance" application"false"gt - ltmeta-infogt
- lttitlegtPortlet1lt/titlegt
- ltdescriptiongtPortlet Example
1lt/descriptiongt - lt/meta-infogt
- ltclassnamegtPortlet1lt/classnamegt
- ltmedia-type ref"html"/gt
- lt/portlet-entrygt
- lt/registrygt
return
69JetSpeedDémonstrationPortlet - WML
- public class WMLPortlet extends AbstractPortlet
public ConcreteElement getContent (RunData
runData) //create an ECS container for
our content ElementContainer container
new ElementContainer() //show WML code
for wireless org.apache.ecs.wml.P p
new org.apache.ecs.wml.P()
.addElement("On wireless")
container.addElement(p) return
container
return
70JetSpeedDémonstrationPortlet HTML et WML
- public class WMLPortlet extends AbstractPortlet
//which MIME types does this portlet
support public boolean supportsType (MimeType
clientMimeType) if (MimeType.HTML.equals(
clientMimeType)) return
true if (MimeType.WML.equals(client
MimeType)) return true r
eturn false - public ConcreteElement getContent (RunData
runData) //create an ECS container for
our content ElementContainer container
new ElementContainer() //get user's
browser info from the Turbine runtime
data. CapabilityMap capMap
CapabilityMapFactory.getCapabilityMap (runData)
71JetSpeedDémonstrationPortlet HTML et WML
- //show HTML code for the web if
(capMap.getPreferredType().equals
(MimeType.HTML)) Table table new
Table()
.setBorder(0)
.addElement(new TR()
.addElement(new TD()
.addElement(new
B() .add
Element("I am bold."))))
.addElement(new TR()
.addElement(new
TD() .addE
lement("I'm the lower table row.")))
container.addElement(table) //show
WML code for wireless else if
(capMap.getPreferredType().equals (MimeType.WML))
org.apache.ecs.wml.P p new
org.apache.ecs.wml.P()
.addElement("On wireless")
container.addElement(p) return
container
return
72JetSpeedDémonstrationPortlet accès base de
données
return
- Table Test dans la base Hypersonic.
- On se sert dune portlet prédéfinit dans JetSpeed
? DatabaseBrowserPortlet. - À ajouter dans le fichier xrep
- ltportlet-entry name"DatabaseBrowserTest"
hidden"false" type"ref"
parent"DatabaseBrowserPortlet"
application"false"gt - ltmeta-infogt
- lttitlegtDatabaseBrowserTestlt/titlegt
- ltdescriptiongtSimple Test Database Browser
Portlet Examplelt/descriptiongt - lt/meta-infogt
- ltparameter name"template" value"database-brows
er-portlet" hidden"false"/gt - ltparameter name"customizeTemplate"
value"database-browser-customize"
hidden"false"/gt - ltparameter name"action"
value"portlets.browser.DatabaseBrowserAction"
hidden"false"/gt - ltparameter name"sql" value"select from
coffees" hidden"false"/gt - ltparameter name"windowSize" value"5"
hidden"false"/gt - ltmedia-type ref"html"/gt
- lt/portlet-entrygt
73JetSpeedDémonstrationPortlet - SOAP
- Cela nécessite Apache SOAP 2.2
- La portlet récupère sur le site Xmethods.net le
prix du livre ayant pour ISBN 0596000405 - import org.apache.ecs.import
org.apache.ecs.html.import org.apache.jetspeed
.portal.portlets.AbstractPortletimport
org.apache.turbine.util.RunDataimport
org.apache.soap.util.xml.import
org.apache.soap.import org.apache.soap.rpc.
import java.io.import java.net.import
java.util.Vectorpublic class BookPricePortlet
extends AbstractPortlet
74JetSpeedDémonstrationPortlet - SOAP
- public String getPrice(String isbn)
URL url null try
urlnew URL("http//services.xmethods.com80/soap/
servlet/rpcrouter") catch
(MalformedURLException mue) return
mue.getMessage() /
/ This is the main SOAP object Call
soapCall new Call() // Use SOAP
encoding soapCall.setEncodingStyleURI(Consta
nts.NS_URI_SOAP_ENC) // This is the
remote object we're asking for the
price soapCall.setTargetObjectURI("urnxmeth
ods-BNPriceCheck") // This is the name of
the method on the above object soapCall.setM
ethodName("getPrice") // We need to send
the ISBN number as an input parameter to the
method Vector soapParams new
Vector() // name, type, value, encoding
style Parameter isbnParam new
Parameter("isbn", String.class, isbn,
null) soapParams.addElement(isbnParam)
75JetSpeedDémonstrationPortlet - SOAP
return
- soapCall.setParams(soapParams) try
// Invoke the remote method on the
object Response soapResponse
soapCall.invoke(url,"") // Check to
see if there is an error, return "N/A"
if (soapResponse.generatedFault())
return "N/A" else
// read result Paramete
r soapResult soapResponse.getReturnValue
() // get a string from the
result return soapResult.getValue().to
String() catch (SOAPException
se) return se.getMessage()
public ConcreteElement getContent(RunData
runData) StringElement price new
StringElement() price.addElement("Java
Servlet Programming " getPrice("0596000405"))
return price -
76JetSpeedDémonstration HTML interne
- ltportlet-entry name"pageHTML1" hidden"false"
type"ref" - parent"HTML" application"false"gt
- ltmeta-infogt
- lttitlegtma page HTML 1lt/titlegt
- ltdescriptiongtréférence vers la page HTML
1lt/descriptiongt - lt/meta-infogt
- lturlgt/page1.htmllt/urlgt
- lt/portlet-entrygt
return
77JetSpeedDémonstration HTML externe
- ltportlet-entry name"Page de tomcat"
hidden"false" type"ref" - parent"WebPagePortlet" application"false"gt
- ltmeta-infogt
- lttitlegtla page de tomcatlt/titlegt
- ltdescriptiongtReference vers la page de
- tomcatlt/descriptiongt
- lt/meta-infogt
- ltparameter name"dont_remove_applet"
value"yes" hidden"false"/gt - ltparameter name"dont_remove_script"
value"yes" hidden"false"/gt - lturlgthttp//localhost8080/lt/urlgt
- lt/portlet-entrygt
return
78JetSpeedDémonstration Portlet RSS
- ltportlet-entry name"Apacheweek" hidden"false
- type"ref" parent"RSS" application"false"gt
- ltmeta-infogt
- lttitlegtApacheweeklt/titlegt
- lt/meta-infogt
- lturlgthttp//www.apacheweek.com/issues/apacheweek-
headlines.xmllt/urlgt - lt/portlet-entrygt
return