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

Seam Java Discussion :

s:ConvertEntity et configuration du projet


Sujet :

Seam Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 41
    Par défaut s:ConvertEntity et configuration du projet
    Bonjour,

    Je n'arrive pas à faire fonctionner la balise <s:convertEntity>
    J'ai passé plus de 8 heures à chercher sur les forums et les tutorials mais rien n'y fait.
    Sans le convert, j'ai l'erreur suivante:
    Erreur de conversion quand la valeur 'com.pndata.pnasso.business.bo.ReferentielpaysBO@b56ec6e1' est commise pour le mod&eacute;le 'null Converter'.

    Alors que sur un projet sans Seam, on récupère parfaitement l'objet sans faire de conversion.

    Bref, j'ajoute le <s:convertEntity> et j'ai alors l'erreur:
    Could not instantiate Seam component: org.jboss.seam.ui.entityLoader

    J'ai bien sûr tester ce que la documentation indique à ce sujet, à savoir des modifications sur le components.xml et éventuellement hibernet.properties.
    J'ai généralement une erreur de syntaxe par rapport aux instructions à ajouter (alors qu'elles sont identiques aux examples montrés) ou sinon aucun changements à l'exécution.

    Utiliser un ID au lieu d'un objet est une solution. Mais ça demande plus de gestion puisqu'il faut reconvertir l'id en objet dans le backing-bean. Sans compter que pour les lists avec clé primaires multiples, il faudra créer une clé fictive dans le BO en @transient et la gérer manuellement.
    Bref, cette solution n'est pas idéale...

    Tout aide serait bienvenue


    JSF:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:selectOneMenu id="selectPays" value="#{individu.pays}" rendered="#{individuIdentiteAction.mode != 0}" style="width:150px;">
        <s:selectItems value="#{listePays}" var="p" label="#{p.libpays}"/>  
    </h:selectOneMenu>
    Un bean:
    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
     
    @Name("paysList")
    @Scope(ScopeType.APPLICATION) 
    public class PaysList implements java.io.Serializable {
     
    	private static final long serialVersionUID = -7402234629771271315L;
     
        @In("#{referenceService}")
        protected ReferenceService referenceService;
     
    	@Out
    	private List<ReferentielpaysBO> listePays;
     
    	@Create
    	@Factory("listePays")
    	public void initListe() {
    		this.listePays = referenceService.retrievePays();
    	}
     
    	public List<ReferentielpaysBO> getListePays() {
    		return listePays;
    	}
     
    	public ReferentielpaysBO getPays(String code) {
    		ReferentielpaysBO pays = new ReferentielpaysBO();
    		for (ReferentielpaysBO p : listePays)
    		{
    			if (p.getCode2pays().equals(code))
    				pays = p;
    		}
    		return pays;
    	}
     
    }
    Le service concerné:
    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
     
    @Stateless
    @Name("referenceService")
    public class ReferenceServiceImpl implements ReferenceService {
     
    	@PersistenceContext
    	private EntityManager em;
     
    	@SuppressWarnings("unchecked")
    	@Override
    	public java.util.List<ReferentielpaysBO> retrievePays() {
    		javax.persistence.Query q = em.createNamedQuery(ReferentielpaysBO.QN.ALL);
    		return q.getResultList();
    	}
     
    	@SuppressWarnings("unchecked")
    	@Override
    	public java.util.List<ReferentielciviliteBO> retrieveCivilites() {
    		javax.persistence.Query q = em.createNamedQuery(ReferentielciviliteBO.QN.ALL);
    		return q.getResultList();
    	}
     
    	@SuppressWarnings("unchecked")
    	@Override
    	public java.util.List<RefprenomsBO> retrievePrenoms() {
    		javax.persistence.Query q = em.createNamedQuery(RefprenomsBO.QN.ALL);
    		return q.getResultList();
    	}
     
    	@SuppressWarnings("unchecked")
    	@Override
    	public java.util.List<RefvillesBO> retrieveVilles() {
    		javax.persistence.Query q = em.createNamedQuery(RefvillesBO.QN.ALL);
    		return q.getResultList();
    	}
     
    }
    Components.xml:
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <components xmlns="http://jboss.com/products/seam/components"
                xmlns:core="http://jboss.com/products/seam/core"
                xmlns:security="http://jboss.com/products/seam/security"
                xmlns:transaction="http://jboss.com/products/seam/transaction"
                xmlns:web="http://jboss.com/products/seam/web"
                xmlns:theme="http://jboss.com/products/seam/theme"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation=
                    "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.2.xsd
                     http://jboss.com/products/seam/transaction http://jboss.com/products/seam/transaction-2.2.xsd
                     http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.2.xsd
                     http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.2.xsd
                     http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.2.xsd
                     http://jboss.com/products/seam/theme http://jboss.com/products/seam/theme-2.2.xsd">
     
        <core:init jndi-pattern="pnasso-ear/#{ejbName}/local" debug="true" distributable="false"/>
     
        <core:manager conversation-timeout="120000"
                      concurrent-request-timeout="500"
                      conversation-id-parameter="cid"/>
     
        <transaction:ejb-transaction/>
     
        <security:identity authenticate-method="#{authenticator.authenticate}"/>
     
    	<web:character-encoding-filter encoding="UTF-8" override-client="true" url-pattern="*.seam" />
     
    	<theme:theme-selector cookie-enabled="true">
    	    <theme:available-themes>
    	        <value>default</value>
    	    </theme:available-themes>
    	</theme:theme-selector>
     
    </components>

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 75
    Par défaut
    j'ai pas lu tout ton code mais voila comment je l'utilise et que ca marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:selectOneMenu rendered="#{applicationManagerHome.fromSelectedAppli.propertiesList.size != 0}" value="#{applicationManagerHome.fromSelectedPropertie}">
    	<s:selectItems value="#{applicationManagerHome.fromSelectedAppli.propertiesList}" var="property" label="#{property.name}" />
    	<s:convertEntity />
    </h:selectOneMenu>
    J'ai une classe entity Property.
    applicationManagerHome.fromSelectedPropertie c'est un objet Property.
    applicationManagerHome.fromSelectedAppli.propertiesList c'est une List< Property> (pas un set ou un hash)

Discussions similaires

  1. configuration du projet avec mvn eclipse:eclipse
    Par cronoschris dans le forum Maven
    Réponses: 3
    Dernier message: 21/08/2007, 15h38
  2. Dev de plugin - commandes Eclipse por configurer les projets
    Par Bicnic dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 27/06/2007, 17h28
  3. Pb de configuration de projet Glut sous DevCpp
    Par quantik-revolution dans le forum GLUT
    Réponses: 35
    Dernier message: 14/09/2006, 13h18
  4. [XERCES] Probleme de configuration du projet.
    Par bitou dans le forum MFC
    Réponses: 9
    Dernier message: 12/05/2006, 19h01
  5. Bonne pratique, configuration de projets
    Par gailuris dans le forum EDI et Outils pour Java
    Réponses: 7
    Dernier message: 15/12/2005, 10h57

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