Précédent   Forum du club des développeurs et IT Pro > Java > Développement Web en Java > Portails
Portails Forum d'entraide sur les Portlets (JSR 168 / JSR 286) et les solutions Java de type portail (GateIn, Liferay, JBoss Portal, eXo Platform, etc.)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/03/2012, 11h40   #1
meher211
Invité de passage
 
Homme Meher Meher
Développeur Java
Inscription : mars 2012
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Meher Meher
Localisation : Tunisie

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2012
Messages : 2
Points : 0
Points : 0
Par défaut Extraire les informations de l'utilisateur connecté

Bonjour,

Je travaille sur Exoplatform 3.5.1, ( développement d'un portlet Struts 2 + spring + JPA/Hibernate) .
Je veux récupérer les informations relatives à l'utilisateur connecté (en action / struts 2), j'ai trouvé ce bout de code :

// Alternative context: WebuiRequestContext context = WebuiRequestContext.getCurrentInstance() ;
PortalRequestContext context = PortalRequestContext.getCurrentInstance() ;
// Get the id of the user logged
String userId = context.getRemoteUser();
// Request the information from OrganizationService:
OrganizationService orgService = getApplicationComponent(OrganizationService.class) ;
if(userId != null) {
User user = orgService.getUserHandler().findUserByName(userId) ;
if (user != null) {
String firstName = user.getFirstName();
String lastName = user.getLastName();
String email = user.getEmail();
}
}


dans :
http://wiki.exoplatform.org/xwiki/bi...le#Information

Le problème que ca me génère des exception JavaNullPointerException à cette ligne :
WebuiRequestContext context = WebuiRequestContext.getCurrentInstance() ;
aussi à celle ci :
OrganizationService orgService = getApplicationComponent(OrganizationService.class) ;

voilà une partie du fichier POM.XML (maven 2)
<dependency>
<groupId>org.exoplatform.kernel</groupId>
<artifactId>exo.kernel.container</artifactId>
<version>2.2.2-GA</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.exoplatform.core</groupId>
<artifactId>exo.core.component.organization.api</artifactId>
<version>2.4.0-CR2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.exoplatform.portal</groupId>
<artifactId>exo.portal.component.web</artifactId>
<version>3.1.0-CR01</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.exoplatform.portal</groupId>
<artifactId>exo.portal.webui.core</artifactId>
<version>3.0.0-Beta02</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.exoplatform.portal</groupId>
<artifactId>exo.portal.webui.portal</artifactId>
<version>3.1.0-CR01</version>
<type>jar</type>
<scope>compile</scope>
</dependency>

est qu'il y a des dependencies manquantes ? il y a d'autres jars nécéssaires ??
Quelles sont les dependency nécessaires pour exécuter ce code ?
Ma classe doit-elle implémenter une interface quelconque ?

PS : Je suis sous EXOPLATFORM 3.5.1

Merci d'avance .
meher211 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2012, 23h29   #2
ruda.tom
Membre du Club
 
Inscription : décembre 2002
Messages : 172
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 172
Points : 64
Points : 64
Réponse un peu tardive, mais ça peut toujours servir...

Le 1er problème de ton bout de code est la récupération de l'identifiant de l'utilisateur.
Les classes WebuiRequestContext et PortalRequestContext font partie du framework utilisé pour les portlets livrées avec GateIn (WebUI). Dans ton cas, tu ne l'utilises pas, tu utilises Struts et son bridge.
Tu peux récupérer, depuis n'importe où, l'identifiant de l'utilisateur connecté avec :
Code :
String userId = ConversationState.getCurrent().getIdentity().getUserId();
Ensuite, la récupération du service OrganizationService.
Le mieux est d'utiliser la méthode suivante :
Code :
OrganizationService organizationService = (OrganizationService) ExoContainerContext.getCurrentContainer().getComponentInstanceOfType(OrganizationService.class);
Pour le reste, ça me parait correct.
ruda.tom est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h14.


 
 
 
 
Partenaires

Hébergement Web