IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Portails Java Discussion :

[2.6] Problème UserModule [JBoss Portal]


Sujet :

Portails Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 15
    Par défaut [2.6] Problème UserModule
    Bonjour,

    J'ai un problème d'utilisation du module "UserModule" dans une portlet, dans mon fichier XML de configuration des portlet je déclare bien ce module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <service>
          <service-name>UserModule</service-name>
          <service-class>org.jboss.portal.identity.UserModule</service-class>
          <service-ref>:service=Module,type=User</service-ref>
       </service>
       <service>
          <service-name>RoleModule</service-name>
          <service-class>org.jboss.portal.identity.RoleModule</service-class>
          <service-ref>:service=Module,type=Role</service-ref>
       </service>
       <service>
          <service-name>UserProfileModule</service-name>
          <service-class>org.jboss.portal.identity.UserProfileModule</service-class>
          <service-ref>:service=Module,type=UserProfile</service-ref>
       </service>
    mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Iterator;
    import java.util.Map;
     
    import javax.naming.InitialContext;
    import javax.portlet.GenericPortlet;
    import javax.portlet.PortletException;
    import javax.portlet.PortletSecurityException;
    import javax.portlet.RenderRequest;
    import javax.portlet.RenderResponse;
     
    import org.jboss.portal.identity.User;
    import org.jboss.portal.identity.UserModule;
    import org.jboss.portal.identity.UserProfileModule;
     
    public class UserPortlet extends GenericPortlet {
     
    	@Override
    	protected void doView(RenderRequest request, RenderResponse response)
    			throws PortletException, PortletSecurityException, IOException {
     
    		String sDiv = "<div id='utilisateur'>";
    		response.setContentType("text/html");
    		PrintWriter writer = response.getWriter();
     
    		try{
    			UserModule userModule = (UserModule)new InitialContext().lookup("java:portal/UserModule");
    			UserProfileModule userProfileModule = (UserProfileModule)new InitialContext().lookup("java:portal/UserProfileModule");
     
    				if (userModule == null)
    				{
    					throw new PortletException("Pas de module utilisateur");
    				}
     
    			User user = userModule.findUserByUserName(request.getUserPrincipal().getName());
    			Map map = userProfileModule.getProperties(user);
     
    			for (Iterator iterator = map.keySet().iterator(); iterator.hasNext();) {
    				Object cle = iterator.next();
    				Object valeur = map.get(cle);
    				System.out.println(cle + " : " + valeur.getClass().getName() + " - " + valeur);
    			}
     
    			sDiv += "<span class=\"usermessage\">Utilisateur connecté : " + 
    						user.getUserName() + 
    					"</span>";
     
    		}catch(Exception e){
    			e.printStackTrace();
    			if ( request.getUserPrincipal() != null )
    				sDiv += "<span class=\"usermessage\">Utilisateur connecté : " + 
    							request.getUserPrincipal().getName() + 
    						"</span>";
    		}
     
    		sDiv += "</div>";
     
    		writer.write(sDiv);
    		response.setTitle("");
     
    		writer.close();
    	}
    l'objet "UserModule" est bien dans mon contexte de portlet et lors de l'exécution de la methode "findUserByUserName" j'ai l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    16:46:35,703 ERROR [HibernateUserModuleImpl] Cannot find user by name admin
    org.hibernate.HibernateException: Unable to locate current JTA transaction
    	at org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:61)
    	at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:542)
    	at org.jboss.portal.identity.db.HibernateUserModuleImpl.getCurrentSession(HibernateUserModuleImpl.java:291)
    	at org.jboss.portal.identity.db.HibernateUserModuleImpl.findUserByUserName(HibernateUserModuleImpl.java:91)
    	at com.macif.users.UserPortlet.doView(UserPortlet.java:38)
    	at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:133)
    	at javax.portlet.GenericPortlet.render(GenericPortlet.java:306)
    Quelqu'un aurait-il une idée?

    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Je dirais que tu n'a pas précisé que ton portlet a besoin d'être dans une transaction, dans jboss-portlet.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <portlet-app>
       <portlet>
       	<portlet-name>UserPortlet </portlet-name>
       	<transaction>
       		<trans-attribute>Required</trans-attribute>
       	</transaction>
    ...

  3. #3
    Membre averti
    Inscrit en
    Août 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 15
    Par défaut
    Cool, merci, apparemment ça fonctionne correctement maintenant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo