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 :

There is no default persistence unit in this deployment.


Sujet :

Java EE

  1. #1
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut There is no default persistence unit in this deployment.
    Bonjour,

    Pour tests, j'ai une petite application qui utilise un Session Bean sans problème.

    Dès que j'utilise dans cette application un Entity Bean, au démarrage du serveur JBoss j'obtiens l'exception suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.lang.RuntimeException: Illegal @PersistenceUnit on javax.persistence.EntityManager com.MonEJBBean.persistance :There is no default persistence unit in this deployment.
    La classe Entity Bean est la suivante :

    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
    package com;
    import java.io.Serializable;
     
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
     
     
    @Entity
    @Table(name="MonEntite") // en option
    public class MonEntite implements Serializable {
     
        @Id
        @GeneratedValue(strategy=GenerationType.AUTO)
        private int id;
     
        private String name;
     
        private static final long serialVersionUID = 1L;
     
        public MonEntite() {
            super();
        }
     
        public MonEntite(String name) 
        {
            super();
            setName(name);
        }
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
     
        public int getId() {
            return this.id;
        }
     
        public void setId(int id) {
            this.id = id;
        }
     
    }
    ... et le fichier persistence.xml 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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
         <persistence-unit name="jpa" transaction-type="RESOURCE_LOCAL">
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <properties>
       <property name="hibernate.archive.autodetection" value="class, hbm" />
       <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
       <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jpa" />
       <property name="hibernate.connection.username" value="root" />
       <property name="hibernate.connection.password" value="root" />
       <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
     
      </properties>
     </persistence-unit>
     
    </persistence>
    La base de données est une base MySQL en local et l'accès à la table jta est correcte à partir de phpmyadmin et à partir de eclipse.

    Comment régler ce problème que je cherche depuis de nombreuses heures déjà.

    A+

  2. #2
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Par défaut
    ça sort d'où ça ? :

    com.MonEJBBean.persistance

  3. #3
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Citation Envoyé par longbeach Voir le message
    ça sort d'où ça ? :

    com.MonEJBBean.persistance
    Je suppose qu'il s'agit du Session 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
    35
    36
     
    package com; 
     
    import javax.ejb.Remote; 
    import javax.ejb.Stateless; 
    import javax.persistence.EntityManager; 
    import javax.persistence.PersistenceContext; 
     
    import com.MonEJB; 
     
    @Remote 
    @Stateless 
    public class MonEJBBean implements MonEJB { 
     
     
         @PersistenceContext 
         EntityManager persistance; 
     
     
        public String test() { 
     
            MonEntite monEntite = new MonEntite("MonEntite"); 
            persistance.persist(monEntite); 
     
            MonEntite monEntite2 = persistance.find(MonEntite.class, 0); 
     
            if (monEntite2 != null) 
            { 
                System.out.println("ENTITE => " + monEntite2.getId() + " : " + monEntite2.getName()); 
            } 
     
     
     
            return "Ceci est un test"; 
        } 
    }
    Les classes sont en pièce jointe.

    A+
    Fichiers attachés Fichiers attachés

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Et en mettant @PersistenceContext(unitName="jpa")
    Ca marche mieux ?

  5. #5
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Citation Envoyé par mad-math Voir le message
    Et en mettant @PersistenceContext(unitName="jpa")
    Ca marche mieux ?
    Merci beaucoup mad-math pour ton aide. Maintenant le serveur démarre.

    Mais quand je lance l'application cliente :

    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
     
    package com; 
     
    import java.util.Properties; 
     
    import javax.naming.Context; 
    import javax.naming.InitialContext; 
    import javax.naming.NamingException; 
     
    import com.MonEJB; 
     
     
    public class Main { 
        public static void main(String[] args) throws NamingException { 
            Properties contextProperties = new Properties(); 
            contextProperties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); 
            contextProperties.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); 
            contextProperties.setProperty(Context.PROVIDER_URL, "jnp://localhost:1099/"); 
     
            Context ctx = new InitialContext(contextProperties); 
     
            MonEJB ejb = (MonEJB) ctx.lookup("app/MonEJBBean/remote"); 
     
            System.out.println(ejb.test()); 
        } 
     
        /* (non-Java-doc) 
         * @see java.lang.Object#Object() 
         */ 
        public Main() { 
            super(); 
        }
    ... il y a l'exception suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Exception in thread "main" javax.naming.NameNotFoundException: app not bound
    ... et pourtant dans la console jmx de jboss j'ai les entrées suivantes :

    Alors pourquoi app/MonEJBBean/remote n'est pas connu dans le main ?

    Merci encore.

    A+

Discussions similaires

  1. Persistence Unit dynamique
    Par thecaptain dans le forum JPA
    Réponses: 4
    Dernier message: 09/06/2011, 10h24
  2. Réponses: 0
    Dernier message: 29/01/2011, 13h20
  3. Erreur:There is no default persistence unit in this deployment.
    Par bmohcine dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 07/09/2007, 16h40
  4. nettoyer les persistence units
    Par toomsounet dans le forum NetBeans
    Réponses: 1
    Dernier message: 11/03/2007, 14h10
  5. [JBoss 4][EJB3] persistance.units NOTYETINSTALLED
    Par Zero dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 01/02/2007, 09h26

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