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

Wildfly/JBoss Java Discussion :

JBoss + JPA + Hibernate + MySql


Sujet :

Wildfly/JBoss Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Iori Yagami
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 107
    Par défaut JBoss + JPA + Hibernate + MySql
    Bonjour,
    je voudrais faire une application JEE sur un serveur JBoss AS 5.0, l'application doit utiliser JPA pour la manipulation de la BD.

    d'après ce que j'ai compris, JBoss supporte automatiquement Hibernate, et il suffit de mettre dans le persistence.xml le datasource. donc voila ce que j'ai fait:

    Persistence.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
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence 
    	version="2.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_2_0.xsd">
    	<persistence-unit name="IDPConfigurer">
    		<provider>org.hibernate.ejb.HibernatePersistence</provider>
    		<jta-data-source>MysqlDS</jta-data-source>
    		<class>org.idpconfigurer.dto.Component</class>
    		<properties>
    			<property 
    				name="hibernate.dialect"
    				value="org.hibernate.dialect.OracleDialect"/>
    		</properties>
    	</persistence-unit>
    </persistence>
    Dans le dossier "deploy" de JBoss, j'ai mis le fichier "mysql-ds.xml" suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <datasources> 
        <local-tx-datasource> 
            <jndi-name>MySqlDS</jndi-name> 
            <connection-url>jdbc:mysql://localhost:3306/idp</connection-url> 
            <driver-class>com.mysql.jdbc.Driver</driver-class> 
            <user-name>root</user-name> 
            <password>rootroot</password> 
        </local-tx-datasource> 
    </datasources>
    Quand au jar du connector MySql, je l'ai mis dans le dossier "lib" du serveur "defaut".

    Lors du déploiement voici l'erreur que je reçois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    09:05:19,085 ERROR [ProfileServiceBootstrap] Failed to load profile: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
     
    DEPLOYMENTS MISSING DEPENDENCIES:
      Deployment "persistence.unit:unitName=#IDPConfigurer" is missing the following dependencies:
        Dependency "jboss.jca:name=MysqlDS,service=DataSourceBinding" (should be in state "Create", but is actually in state "** NOT FOUND Depends on 'jboss.jca:name=MysqlDS,service=DataSourceBinding' **")
     
    DEPLOYMENTS IN ERROR:
      Deployment "jboss.jca:name=MysqlDS,service=DataSourceBinding" is in error due to the following reason(s): ** NOT FOUND Depends on 'jboss.jca:name=MysqlDS,service=DataSourceBinding' **
    Un coup de main?

  2. #2
    Membre Expert
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jta-data-source>java:/MysqlDS</jta-data-source>

  3. #3
    Membre confirmé Avatar de Iori Yagami
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 107
    Par défaut
    merci beaucoup, j'ai justement changé ça, plus j'avais mis OracleDS alors que j'utilise une base mysql.
    bon j'ai réglé tout ça, le deploiement semble être sans erreurs, j'ai lancé une petite requête, et là j'ai eu cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    org.hibernate.HibernateException: The chosen transaction strategy requires access to the JTA TransactionManager
    	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:361)
    	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1327)
    	at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
    	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
    	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
    	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
    	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
    	at org.idpconfigurer.backingbeans.Page1BackingBean.getAll(Page1BackingBean.java:28)
    voici le petit code du Page1BackingBean qui a lancé l'exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @SuppressWarnings("unchecked")
    	public List<Component> getAll() {
    		if (all == null) {
    			EntityManager em = Persistence.createEntityManagerFactory("IDPConfigurer").createEntityManager();
    			Query q = em.createQuery("FROM Component c");
    			all = q.getResultList();
    		}
    		return all; 
    	}

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Je ne sais pas si tu l'as changé entre temps mais il faudrait préciser MySQLDialect également dans persistence.xml...

    Pour ton problème, il faut utiliser l'annotation PersistenceContext
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @PersistenceContext(unitName="...")
    EntityManager entityManager;
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé Avatar de Iori Yagami
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 107
    Par défaut
    Le problème c'était le <jta-data-source>, puisque ce n'est pas une jta-data-source, donc j'ai utilisé <non-jta-data-source> et ça a marché merci

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

Discussions similaires

  1. persistance JPA hibernate Mysql primefaces
    Par Leroy.co dans le forum JPA
    Réponses: 11
    Dernier message: 16/05/2013, 13h05
  2. [Core] JPA/Hibernate/MySQL persistance données Excel (POI)
    Par high4life dans le forum Hibernate
    Réponses: 2
    Dernier message: 29/05/2012, 14h23
  3. JPA Hibernate Index non crée dans Mysql
    Par fvisticot dans le forum JPA
    Réponses: 5
    Dernier message: 24/10/2010, 04h35
  4. Configuration Eclipse JBoss JPA/hibernate
    Par pruderic dans le forum JPA
    Réponses: 2
    Dernier message: 13/08/2008, 09h34
  5. Réponses: 1
    Dernier message: 23/01/2008, 10h12

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