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

Java EE Discussion :

Problème de compilation [EJB3 Entity]


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    informatique
    Inscrit en
    Novembre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 167
    Par défaut Problème de compilation
    Bonsoir a tous ,
    j'ai un souci avec la compilation de mon EJB entity , mon EJB se déploie bien mais lors de l’exécution de l'application j'ai le message d'erreur 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
     
    Exception in thread "main" javax.ejb.EJBException: java.lang.IllegalArgumentException: Unknown entity: com.et.Produit
    	at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:63)
    	at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
    	at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
    	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    	at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
    	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    	at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
    	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    	at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
    	at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:106)
    	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    	at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
    	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    	at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
    	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    	at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:278)
    	at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
    	at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)

    voici le main:
    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
    package com.et;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Properties;
     
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    public class GestionDeStockClient {
       public static void main(String[] args) {
          try {
     
              Properties props = System.getProperties();     
              props.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
              props.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
              props.put("java.naming.provider.url", "localhost:1099");
     
             Context context = new InitialContext(props);
             GestiondeStock stock = (GestiondeStock)
     
     
             context.lookup("GestionDeStockBean/remote");
             // Ne pas faire l'ajout plusieurs fois, commenter ces lignes après la première exécution.
             stock.ajouter(new Produit("1401", "Tomate", 100));
             stock.ajouter(new Produit("1402", "Pomme de terre", 5680));
             stock.ajouter(new Produit("1403", "Orange", 23));
             stock.ajouter(new Produit("1404", "Carotte", 115));
             stock.ajouter(new Produit("1405", "Pomme", 48));
             List<Produit> produits = stock.listerTousLesProduits();
             for (Iterator iter = produits.iterator(); iter.hasNext();) {
                Produit eachProduit = (Produit) iter.next();
                System.out.println(eachProduit);
             }
          } catch (NamingException e) {
             e.printStackTrace();
          }
       }
    }
    si quelqu'un a une idée elle est la bienvenue

  2. #2
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    la stack trace c'est celle côté serveur ?

    tu peux montrer ton EJB Entity "Produit" ?

  3. #3
    Membre confirmé
    Profil pro
    informatique
    Inscrit en
    Novembre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 167
    Par défaut
    la stack trace c'est celle côté serveur ?
    en fait c'est ce qui est affiché dans "console"
    package com.et;

    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
    import java.io.Serializable;
    import javax.persistence.Table;
    import javax.persistence.Id;
    import javax.persistence.Column;
     
    import org.hibernate.annotations.Entity;
     
    @Entity
    @Table(name="table_Produit")
    	public class Produit implements Serializable {
    	   @Id
    	   private String id;
    	   @Column(name = "libelle_Column")
    	   private String libelle;
    	   private int quantiteEnStock;
    	   public Produit() {
    	      super();
    	   }
    	   public Produit(String id) {
    	      this.id = id;
    	   }
    	   public Produit(String id, String libelle, int quantiteEnStock) {
    	      this.id = id;
    	      this.libelle = libelle;
    	      this.quantiteEnStock = quantiteEnStock;
    	   }
    	   public String getLibelle() {
    	      return libelle;
    	   }
    	   public void setLibelle(String libelle) {
    	      this.libelle = libelle;
    	   }
    	   public int getQuantiteEnStock() {
    	      return quantiteEnStock;
    	   }
    	   public void setQuantiteEnStock(int quantiteEnStock) {
    	      this.quantiteEnStock = quantiteEnStock;
    	   }
    	   public String getId() {
    	      return id;
    	   }
    	   public String toString() {
    	      return "Produit n°" + id + " - " + libelle + " - quantité disponible : " +
    	quantiteEnStock;
    	   }
     
    }
    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
    package com.et;
    import java.util.List;
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    @Stateless
    public class GestionDeStockBean implements GestiondeStock {
       @PersistenceContext (unitName="testdb")
       EntityManager em;
       public void ajouter(Produit produit) {
          em.persist(produit);
       }
       public Produit rechercherProduit(String id) {
          return em.find(Produit.class, id);
       }
       public List<Produit> listerTousLesProduits() {
          return em.createQuery("SELECT p FROM Produit p ORDER BY p.quantiteEnStock").getResultList();
       }
    }

  4. #4
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    essaye en déclarant ta classe "Produit" dans le fichier "persistence.xml".

    Tu peux montrer du fichier "persistence.xml".

  5. #5
    Membre confirmé
    Profil pro
    informatique
    Inscrit en
    Novembre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 167
    Par défaut
    fichier persistance.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <persistence>
       <persistence-unit name="testdb">
          <jta-data-source>java:/DefaultDS</jta-data-source>
          <properties>
             <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
             <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
          </properties>
       </persistence-unit>
    </persistence>
    comment déclaré ma classe produit dans un ce fichier ?

  6. #6
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <persistence>
       <persistence-unit name="manager1">
           <jta-data-source>java:/DefaultDS</jta-data-source>
           <class>org.acme.Employee</class>
           <class>org.acme.Person</class>
           <class>org.acme.Address</class>
           <properties>
                <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
                <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
           </properties>
       </persistence-unit>
    </persistence>
    tiré de cet exemple :
    http://docs.jboss.org/ejb3/app-serve...ityconfig.html

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

Discussions similaires

  1. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52
  2. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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