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

Hibernate Java Discussion :

Hibernate et applet


Sujet :

Hibernate Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Par défaut Hibernate et applet
    peut on utliser hibernate avec une applet si oui, comment?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Oui on peut.
    Pour le "comment", précise ta question.

  3. #3
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Techniquement oui, mais je ne suis pas sur que ce soit une idée judicieuse qu'une applet(coté client) se connecte directement une base de donnée.
    Est-ce que c'est vraiment ce que tu veux?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Par défaut
    en fait j'ai fait une applet qui utilise hibernate, sa marche avec appletviewer, mais pas sur un navigateur, il me met l'erreur suivante

    Exception in thread "Thread-6" java.lang.NoClassDefFoundError: org/hibernate/HibernateException
    at com.jeux.model.JouerRapido.init(JouerRapido.java:359)
    at com.jeux.model.Rapido.jouer(Rapido.java:141)
    at com.jeux.vue.RapidoVue.run(RapidoVue.java:396)
    at java.lang.Thread.run(Thread.java:595)

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Il te manque les jars indispensables au fonctionnement d'Hibernate.
    Tu peux utiliser l'attribut archive du tag applet pour spécifier tous les jars dont ton application a besoin.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Par défaut
    Apparemment des qu'il ya une connexion avec la session hibernate il génére une exception, bon je me suis dis que c'est les droit limité des applets, mais en lisant quelques forum, j'ai pu comprendre que lorsque la base de données etait dans le meme serveur que le conteneur web, on n'avais pas besoin de faire signé son applet. Et même, je l'ai quand fait siggné mon applet, jusqu'à la ça me donne toujour la même erreur. Si quelqu'un a une idée qu'il vienne à mon secour car ça fait plusieur jour que je galère dessus.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Par défaut
    j'ai pensé à cette possibilité de jar indispensable à hibernate, donc pour le faire j'ai crée un jar globale qui rassemble toute les librairie que j'appelle dans mon classpath, avec mon application elle même, et je l'ai mis dans l'attribut archive. bon l'applet s'affiche, et des le moment qu'elle doit faire une connexion avec hibernate l'erreur s'affiche.

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Le message est clair, la classe en question n'est pas trouvée, donc il y a un problème dans ta façon de faire.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Par défaut
    Aurais tu une idée de la maniere dont je dois mis prendre?

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Ben comme je t'ai dit plus haut.
    Tu fournis tous les jars d'Hibernate dans l'attribut archive ainsi que, évidemment, le jar de ton application.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Par défaut
    la j'ai essayer de mettre tout mes jar, comme tu me l'as dis, bon le type d'erreur à changer. mais il demeure quand même des erreurs, et beaucoup meme.

    06-05-2009 18:08:43:717 0 WARN org.hibernate.cfg.Environment - could not copy system properties, system properties will be ignored
    06-05-2009 18:08:44:425 708 WARN org.hibernate.cfg.SettingsFactory - Could not obtain connection metadata
    com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

    ** BEGIN NESTED EXCEPTION **

    java.net.SocketException
    MESSAGE: java.security.AccessControlException: access denied (java.net.SocketPermission 192.168.1.157:3306 connect,resolve)

    STACKTRACE:

    java.net.SocketException: java.security.AccessControlException: access denied (java.net.SocketPermission 192.168.1.157:3306 connect,resolve)
    at com.mysql.jdbc.StandardSocketFactory.unwrapExceptionToProperClassAndThrowIt(StandardSocketFactory.java:292)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:182)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:268)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2745)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:140)
    at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
    at com.jeux.data.HibernateUtil.<clinit>(HibernateUtil.java:14)
    at com.jeux.model.GenereMot.generateListMots(GenereMot.java:119)
    at com.jeux.model.JouerRapido.init(JouerRapido.java:360)
    at com.jeux.model.Rapido.jouer(Rapido.java:141)
    at com.jeux.vue.RapidoVue.run(RapidoVue.java:396)
    at java.lang.Thread.run(Thread.java:595)


    ** END NESTED EXCEPTION **



    Last packet sent to the server was 28 ms ago.
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2820)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:140)
    at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
    at com.jeux.data.HibernateUtil.<clinit>(HibernateUtil.java:14)
    at com.jeux.model.GenereMot.generateListMots(GenereMot.java:119)
    at com.jeux.model.JouerRapido.init(JouerRapido.java:360)
    at com.jeux.model.Rapido.jouer(Rapido.java:141)
    at com.jeux.vue.RapidoVue.run(RapidoVue.java:396)
    at java.lang.Thread.run(Thread.java:595)
    Exception in thread "Thread-12" java.lang.ExceptionInInitializerError
    at net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30)
    at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
    at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
    at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
    at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
    at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:117)
    at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
    at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
    at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:295)
    at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:434)
    at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
    at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
    at com.jeux.data.HibernateUtil.<clinit>(HibernateUtil.java:14)
    at com.jeux.model.GenereMot.generateListMots(GenereMot.java:119)
    at com.jeux.model.JouerRapido.init(JouerRapido.java:360)
    at com.jeux.model.Rapido.jouer(Rapido.java:141)
    at com.jeux.vue.RapidoVue.run(RapidoVue.java:396)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission cglib.debugLocation read)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
    at java.security.AccessController.checkPermission(AccessController.java:427)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
    at java.lang.System.getProperty(System.java:628)
    at net.sf.cglib.core.DebuggingClassWriter.<clinit>(DebuggingClassWriter.java:35

  12. #12
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Ta base de données est sur la même machine que celle qui exécute ton applet ?

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Par défaut
    Oui ma base de données est sur le même poste que mon application, mais après une modification de mon fichier de config hibernate, l'erreur a changé.

    WARN org.hibernate.cfg.Environment - could not copy system properties, system properties will be ignored


    Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission cglib.debugLocation read)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
    at java.security.AccessController.checkPermission(AccessController.java:427)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
    at java.lang.System.getProperty(System.java:628)
    at net.sf.cglib.core.DebuggingClassWriter.<clinit>(DebuggingClassWriter.java:35)

  14. #14
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Si c'est la même machine, essaie avec localhost au lieu de ton ip pour l'adresse de la base.

    Ca ressemble à un problème d'applet non signée qui ne peut pas accéder à une ressource externe.

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Par défaut
    finalement j'ai reussi, bon il y'avait plusieurs problème, effectivement celui de l'ip et des jars non signés. Donc pour le faire j'ai pris toutes les jars que mon projet utilise, je les ai dejarrées(je ne sais pas si ça se dis bon bref vous me comprenez)

    puis j'ai pris les tous les packages de mes jars dezipées et je les ai fais fusionner. pour que ça ne forme qu'un seul package, ensuite j'ai mis les packages des jars dans mon fichiers fichiers bin (c'est à dire là ou il y'a tous mes fichiers .class) jai réecreer un ficher jar avec la commande jar -cvf monjar.jar * . donc ça me faisait un super jar ou il yavait mon projet avec toutes les jar dont à besoin mon projets.

    Ensuite il fallais que je signe mon jar pour que mon appelt puisse correctement utilisé hibernate. Epourtant ma base de donnée et mon conteneur web sont dans le même serveur, mais il fallais quand même que je fasse signé ma jar.

    Pour le fais , il faut creer une keystore, et moi je le fais grace à l'outil keytool de la jre
    taper la commande suivante. bon effectivement il faut connaitre le repertoire de sa jre: jre/bin/keytool -genkey -alias nomdeCle -keypass motDepasse

    il va vous poser beaucoup de question, bon bref. je passe dessus.
    puis j'ai fais signé mon jar grace à la commande
    jarsigner monjar.jar nomDeLaCle
    après je creer une page html, jsp, php, bon tout ce que vous voulez avec les balise applet et j'insere monjar.jar dans l'atribut archive.

    Et le tout est jouer.

  16. #16
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Je trouve un peu crade de tout mettre dans un même jar.
    Il serait plus propre de signer tous tes jars, mais tu fais comme tu veux.

  17. #17
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 16
    Par défaut
    Bonjour,

    Je me suis basé sur cette discussion pour résoudre mon problème qui se ressemble bcp avec celui la.

    Dans mon Applet je dois faire les choses suivantes:
    - Accéder à ma BDD, pour cela j'appelle mes dao qui utilisent hibernate
    -Récupérer tout les personnes dans la BDD
    - Afficher une personne chq fois on clic sur un bouton 'afficher personne'
    J'ai mis tout cela en try, en cas d'échec je crée une liste des personnes en dure et puis je l'affiche de la même façon.
    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
     
    private Personne personne;
    private DAOPersonne dao = DAOPersonneHBM.getInstance();
     ArrayList<Question> tab;
     
     
                   try {				
     
    			tab = new ArrayList<Question>();	
                            tab = dao.LoadAllPersonnes();
     
     
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			tab = new ArrayList<Question>();
    			tab.add(new Personne("A", "B", "@1");
    			tab.add(new Personne("C", "D", "@2");
    			tab.add(new Personne("E", "F", "@3");			
    		}
    Lorsque je lance l'exécution avec "Run as Java applet", il execute le try.

    Maintenant, avec un navigateur, je lance mon serveur Tomcat et je tapes l'adresse de ma page jsp, il exécute le catch.

    est-ce que quelqu'un a une idée d'où vient le problème !!

    Merci d'avance pour votre aide.

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 03/07/2013, 09h26
  2. [Integration] Problème d'intégration d'un Applet JAVA tournant avec Spring / Hibernate / JPA
    Par anthony22360 dans le forum Spring
    Réponses: 1
    Dernier message: 02/07/2013, 16h41
  3. Hibernate et applet
    Par Kirikou12 dans le forum Hibernate
    Réponses: 2
    Dernier message: 07/05/2012, 16h45
  4. [jb8][windows] main et applet
    Par ddmicrolog dans le forum JBuilder
    Réponses: 2
    Dernier message: 14/01/2003, 22h42
  5. [Kylix] applets?
    Par mickywicky dans le forum EDI
    Réponses: 6
    Dernier message: 11/11/2002, 12h02

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