Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1465 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Prb de connexion de jsf et hibernate

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Prb de connexion de jsf et hibernate

n°1920400
sonia5
Posté le 01-09-2009 à 16:43:29  profilanswer
 

Bonsoir
J ai fait une petite application en jsf + Hibernate
Et j ai fait une interface qui traite l ajout d un utilisateur et voici le code de ma page index.jsp
 
 

Code :
  1. <%@ page contentType="text/html; charset=UTF-8" %>
  2. <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
  3. <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <f:view>
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  9. <title>Identification</title>
  10. </head>
  11. <body>
  12. <h:form id="form1">
  13.   <h:outputText value="login"/>
  14.   <h:inputText id="login" value="#{traitement.login}" styleClass="input" >
  15.   </h:inputText>
  16.   <br>
  17.   <br>
  18.     <h:outputText value="MDP" />
  19.     <h:inputText id="mdp"  value="#{traitement.mdp}" styleClass="input" >
  20.     </h:inputText>
  21.    <br>
  22.   <br>
  23.   <div align="center">
  24.   <h:commandButton  action="#{traitement.Ajout}" value="Ajouter" />
  25.   <h:commandButton  action="#{traitement.Supp}" value="Supprimer" />
  26.   <h:commandButton  action="#{traitement.Affichage}" value="Afficher" />
  27.   <h:commandButton  value="Annuler"/>
  28.   <h:commandButton action="#{traitement.Modif}" value="Modifier" />
  29.   </div>
  30. </h:form>
  31. </body>
  32. </f:view>
  33. </html>


[img][img][img][img][/img][/img][/img][/img]
 
Et voici le code de mon bean
 

Code :
  1. package Traitement;
  2. import java.util.HashMap;
  3. import java.util.Hashtable;
  4. import java.util.Map;
  5. import java.util.ArrayList;
  6. import java.util.Collection;
  7. import java.util.HashMap;
  8. import java.util.Iterator;
  9. import java.util.List;
  10. import javax.naming.Context;
  11. import javax.naming.NamingException;
  12. import javax.naming.directory.BasicAttribute;
  13. import javax.naming.directory.BasicAttributes;
  14. import javax.naming.directory.DirContext;
  15. import javax.naming.directory.InitialDirContext;
  16. import org.hibernate.HibernateException;
  17. import org.hibernate.Session;
  18. import com.projet.User;
  19. import com.sun.org.apache.bcel.internal.classfile.Attribute;
  20. import com.sun.org.apache.xalan.internal.xsltc.runtime.Attributes;
  21. import com.util.HibernateUtil;
  22. import org.hibernate.*;
  23. import javax.faces.context.FacesContext;
  24. import javax.faces.event.ActionEvent;
  25. import javax.faces.model.SelectItem;
  26. import javax.servlet.http.HttpServletRequest;
  27. import com.projet.UserHome;
  28. public class traitement {
  29. private Integer id;
  30. private String mdp;
  31. private String login;
  32.  
  33. public Integer getId() {
  34.  return id;
  35. }
  36. public void setId(Integer id) {
  37.  this.id = id;
  38. }
  39. public String getMdp() {
  40.  return mdp;
  41. }
  42. public void setMdp(String mdp) {
  43.  this.mdp = mdp;
  44. }
  45. public String getLogin() {
  46.  return login;
  47. }
  48. public void setLogin(String login) {
  49.  this.login = login;
  50. }
  51. public String Ajout() throws HibernateException{
  52.  System.out.println("Debut Ajout" );
  53.  Session session = HibernateUtil.getSessionFactory().getCurrentSession();
  54.  session.beginTransaction();
  55.  User u1= new User();
  56.  u1.setLogin(getLogin());
  57.  System.out.println("login"+getLogin());
  58.  u1.setMdp(getMdp());
  59.  System.out.println("MDP"+getMdp());
  60.  session.save(u1);
  61.  session.getTransaction().commit();
  62.  HibernateUtil.getSessionFactory().close();
  63.  System.out.println("Fin Ajout" );
  64.  return "ajouter";
  65. }
  66.  public static void main(String[] args) throws Exception{
  67.   traitement t=new traitement();
  68.   t.Ajout();
  69.  }
  70. }


 
 
Et voici le code de mon faces-config.xml
 

Code :
  1. <?xml version="1.0"?>
  2. <!DOCTYPE faces-config PUBLIC
  3.   "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
  4.   "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
  5. <faces-config>
  6.    <managed-bean>
  7.  <managed-bean-name>traitement</managed-bean-name>
  8.  <managed-bean-class>Traitement.traitement</managed-bean-class>
  9.  <managed-bean-scope>session</managed-bean-scope>
  10. </managed-bean>
  11. </faces-config>


 
 
Et qd j exécute mon code de bean avec main se trouvant a mon bean : traitement.java ça marche bien l ajout mais j exécute mon code au niveau de ma page index.jsp voici les erreurs :
 
 

Code :
  1. exception
  2. javax.servlet.ServletException: #{traitement.Ajout}: javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError
  3. javax.faces.webapp.FacesServlet.service(FacesServlet.java:209)
  4. cause mère
  5. javax.faces.FacesException: #{traitement.Ajout}: javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError
  6. com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:78)
  7. javax.faces.component.UICommand.broadcast(UICommand.java:312)
  8. javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
  9. javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
  10. com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
  11. com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
  12. com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
  13. javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
  14. cause mère
  15. javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError
  16. com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:130)
  17. com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
  18. javax.faces.component.UICommand.broadcast(UICommand.java:312)
  19. javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
  20. javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
  21. com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
  22. com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
  23. com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
  24. javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
  25. cause mère
  26. java.lang.ExceptionInInitializerError
  27. com.util.HibernateUtil.<clinit>(HibernateUtil.java:16)
  28. Traitement.traitement.Ajout(traitement.java:80)
  29. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  30. sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  31. sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  32. java.lang.reflect.Method.invoke(Method.java:585)
  33. com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
  34. com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
  35. javax.faces.component.UICommand.broadcast(UICommand.java:312)
  36. javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
  37. javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
  38. com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
  39. com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
  40. com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
  41. javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
  42. cause mère
  43. java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z
  44. org.slf4j.impl.Log4jLoggerAdapter.isTraceEnabled(Log4jLoggerAdapter.java:81)
  45. org.hibernate.type.NullableType.<clinit>(NullableType.java:59)
  46. org.hibernate.Hibernate.<clinit>(Hibernate.java:103)
  47. org.hibernate.type.TypeFactory.<clinit>(TypeFactory.java:69)
  48. org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:283)
  49. org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:276)
  50. org.hibernate.mapping.Property.isValid(Property.java:207)
  51. org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:458)
  52. org.hibernate.mapping.RootClass.validate(RootClass.java:215)
  53. org.hibernate.cfg.Configuration.validate(Configuration.java:1149)
  54. org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1334)
  55. com.util.HibernateUtil.<clinit>(HibernateUtil.java:12)
  56. Traitement.traitement.Ajout(traitement.java:80)
  57. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  58. sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  59. sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  60. java.lang.reflect.Method.invoke(Method.java:585)
  61. com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
  62. com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
  63. javax.faces.component.UICommand.broadcast(UICommand.java:312)
  64. javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
  65. javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
  66. com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
  67. com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
  68. com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
  69. javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)


 
Et voici la liste des librairies que j ai utilisé :
ant-1.6.5.jar
ant-antlr-1.6.5.jar
ant-junit-1.6.5.jar
ant-launcher-1.6.5.jar
antlr-2.7.6.jar
ant-swing-1.6.5.jar
asm.jar
asm-attrs.jar
c3p0-0.9.1.jar
cglib-2.1.3.jar
cglib-2.2.jar
commons-beanutils-1.7.jar
commons-collections-3.1.jar
commons-collections.jar
commons-digester-1.7.jar
commons-logging-1.1.jar
commons-logging-api-1.1.jar
dom4j-1.6.1.jar
ehcache-1.2.3.jar
hibernate3.jar
javassist-3.9.0.GA.jar
jboss-cache-1.4.1.GA.jar
jbosscache-core-3.1.0.GA.jar
jsf-api.jar
jsf-impl.jar
jstl.jar
jta-1.1.jar
jta.jar
log4j-1.2.11.jar
log4j.jar
mysql-connector-java-5.0.4-bin.jar
oscache-2.1.jar
proxool-0.8.3.jar
slf4j-api-1.5.8.jar
slf4j-log4j12.jar
standard.jar
swarmcache-1.0RC2.jar
 
Est-ce que je dois ajouter qlq choses et merci d avance ??


Message édité par sonia5 le 01-09-2009 à 16:51:21
mood
Publicité
Posté le 01-09-2009 à 16:43:29  profilanswer
 

n°1920751
bugbreeder
Posté le 03-09-2009 à 02:40:43  profilanswer
 

Salut Sonia,
 
Dans ta stack trace, tu dois rechercher avant tout le dernier "cause mère" ("caused by" en anglais), car les erreurs au début sont causées par des erreurs antérieures, donc si on règle la cause mère tous les problèmes induits disparaissent aussi.
 
Dans ta stack trace, tu vois en ligne 43 :  "java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z", qui veut dire très clairement que la méthode "isTraceEnabled()" de la classe "Logger" dans le package "org.apache.log4j" n'existe pas.  
Ca veut dire à tous les coups que tu as plusieurs versions de Log4J (plusieurs JARs) présentes dans ton classpath, seulement 1 d'entre eux est chargé et manque de bol ce n'est pas le bon.  
 
Tu as dans ton classpath :
 
log4j-1.2.11.jar
log4j.jar
...........
slf4j-log4j12.jar  
 
Probablement "log4j-1.2.11.jar" est bon car il a l'air d'aller avec "slf4j-log4j12.jar" qui doit l'utiliser, mais le "log4j.jar" tout seul est SUSPECT, c'est probablement lui qui est chargé en 1er par ton application, donc l'autre JAR "log4j-1.2.11.jar" ne l'est pas puisque Log4J est déjà chargé et manque de pot c'est lui qu'il aurait fallu.
 
Donc tu dois certainement virer le "log4j.jar" de ton application, mais ça dépend d'où il vient, il peut très bien faire partie du "common/lib/" de Tomcat par exemple donc chargé automatiquement, il peut aussi être sous ton "WEB-INF/lib/", donc à toi de chercher d'où il vient.
 
Ce genre de problème avec Log4J est extrêmement courant.
 
@++

n°1920756
bugbreeder
Posté le 03-09-2009 à 02:55:43  profilanswer
 

Salut Sonia,

 

Je rajoute que tu peux utiliser l'outil "Front End Plus" pour naviguer dans les JARs de Log4J pour être sûre et certaine de la cause de l'erreur et du JAR à virer, ça lit et décompile les ".class" dans les JARs pour te montrer les codes sources en clair.

 

@++


Message édité par bugbreeder le 03-09-2009 à 02:55:55
n°1920893
sonia5
Posté le 03-09-2009 à 12:25:59  profilanswer
 

Merci pour votre réponse mais j ai supprimé log4j.jar de mes jars et aussi sera les mêmes erreurs mais quand je supprime log4j.jar de mon dossier « lib » voici les erreurs qui m a affichè
 
 

Code :
  1. log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
  2. log4j:WARN Please initialize the log4j system properly.
  3. Initial SessionFactory creation failed.java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z
  4. Exception in thread "main" java.lang.ExceptionInInitializerError
  5. at com.util.HibernateUtil.<clinit>(HibernateUtil.java:16)
  6. at Traitement.traitement.Ajout(traitement.java:80)
  7. at Traitement.traitement.main(traitement.java:106)
  8. Caused by: java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z
  9. at org.slf4j.impl.Log4jLoggerAdapter.isTraceEnabled(Log4jLoggerAdapter.java:81)
  10. at org.hibernate.type.NullableType.<clinit>(NullableType.java:59)
  11. at org.hibernate.Hibernate.<clinit>(Hibernate.java:103)
  12. at org.hibernate.type.TypeFactory.<clinit>(TypeFactory.java:69)
  13. at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:283)
  14. at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:276)
  15. at org.hibernate.mapping.Property.isValid(Property.java:207)
  16. at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:458)
  17. at org.hibernate.mapping.RootClass.validate(RootClass.java:215)
  18. at org.hibernate.cfg.Configuration.validate(Configuration.java:1149)
  19. at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1334)
  20. at com.util.HibernateUtil.<clinit>(HibernateUtil.java:12)


 
Est-ce que vous avez une autre idée car j essaye tous et ça ne marche pas pour moi
Ou bien est ce que je dois répéter mon application de A à Z ?
Merci d avance

n°1920899
bugbreeder
Posté le 03-09-2009 à 12:45:09  profilanswer
 

Salut,
 

sonia5 a écrit :

Merci Est-ce que vous avez une autre idée car j essaye tous et ça ne marche pas pour moi
...........................
Ou bien est ce que je dois répéter mon application de A à Z ?
Merci d avance


 
C'est possible de Zipper votre application et de me l'envoyer (eric.lemaitre_AT_gmail.com, remplacer le _AT_ par @ évidemment) pour que je puisse reproduire le problème et le corriger ?
 
@++

n°1920997
sonia5
Posté le 03-09-2009 à 17:09:07  profilanswer
 

D acoord j ai dèjà vous a envoyè mon projet  
Merci d avance

n°1921019
sonia5
Posté le 03-09-2009 à 17:31:05  profilanswer
 

Quand je supprime mon log4j à partir de mon dossier « lib » , voici le message d erreur qui m a affiché avant l exécuter de mon code :
 

Code :
  1. Could not delete C:/Workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/projet26/WEB-INF/lib/log4j.jar. May be locked by another process.


 
Et au niveau de mon console:

Code :
  1. GRAVE: Error reading tld listeners java.lang.NullPointerException
  2. java.lang.NullPointerException
  3. at org.apache.log4j.Category.isEnabledFor(Category.java:746)
  4. at org.apache.commons.logging.impl.Log4JLogger.isTraceEnabled(Log4JLogger.java:327)
  5. at org.apache.catalina.startup.TldConfig.tldScanResourcePaths(TldConfig.java:581)
  6. at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:282)
  7. at org.apache.catalina.core.StandardContext.processTlds(StandardContext.java:4307)
  8. at org.apache.catalina.core.StandardContext.start(StandardContext.java:4144)
  9. at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3025)
  10. at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:432)
  11. at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1278)
  12. at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570)
  13. at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
  14. at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
  15. at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559)
  16. at java.lang.Thread.run(Thread.java:595)
  17. log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
  18. log4j:WARN Please initialize the log4j system properly.


 
Est ce que vous avez une idèe??

n°1921112
bugbreeder
Posté le 04-09-2009 à 01:30:04  profilanswer
 

Salut Sonia,
 

sonia5 a écrit :

Quand je supprime mon log4j à partir de mon dossier « lib » , voici le message d erreur qui m a affiché avant l exécuter de mon code :

Code :
  1. Could not delete C:/Workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/projet26/WEB-INF/lib/log4j.jar. May be locked by another process.



 
C'est simplement que ce fichier était encore utilisé par un programme en cours, Tomcat était encore actif quand tu as tenté de supprimer "log4J.jar", donc normal.
 

sonia5 a écrit :

Et au niveau de mon console:
[cpp]GRAVE: Error reading tld listeners java.lang.NullPointerException
.....................................
Est ce que vous avez une idèe??


 
Ben là en fait c'est que je t'avais dit une bêtise à l'insu de mon plein gré, en fait le bon fichier c'est "log4J.jar", c'est celui qui DOIT être utilisé, donc une fois supprimé ça se vautre de partout, normal.
 
Evidemment je ne pouvais pas deviner, le "log4j-1.2.11.jar" avait l'air d'être le bon puisqu'il semblait coller d'après son numéro de version avec "slf4j-log4j12-1.5.5.jar" qu'Hibernate utilise, mais en réalité quand tu décompiles les classes "Logger" de ces 2 bibliothèques tu te rends comptes que celui qui ne possède pas la fameuse méthode "isTraceEnabled()" c'est "log4j-1.2.11.jar", alors que "log4j.jar" la possède.
 
En très bref tout ce que je t'ai dit semble parfaitement correct à la nuance près que c'est "log4j-1.2.11.jar" qu'il faut virer et "log4j.jar" qu'il faut garder, donc le contraire de ce que je t'ai dit  :o  .
 
J'ai bien pu reproduire ton erreur "méthode isTraceEnabled() manquante" grâce à ce que tu m'as envoyé, j'ai viré "log4j-1.2.11.jar" mais gardé "log4j.jar", et maintenant ça passe.
 
En fait j'ai maintenant l'erreur "java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)" mais c'est normal puisque la base de données n'existe pas donc évidemment ça ne peut pas marcher, mais tous les problèmes antérieurs de Log4J ont disparu. Donc c'était bien ça.
 
Bonne continuation.
 
@++

n°1921479
sonia5
Posté le 05-09-2009 à 02:43:59  profilanswer
 

Bonsoir
Vous avez raison ,ça marche chez moi
Merci pour vos aides


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Prb de connexion de jsf et hibernate

 

Sujets relatifs
PhpAdmin : connexion impossible sous Wampserver [Résolu][JPA/Hibernate] Mapper des Map
[C]Connexion et récupération de fichier via ftp en CProblème du connexion à BD Mysql dans un programme C
[c#] connexion base de donnée avec ADO.NET[Résolu][Hibernate] Rollback Exception improbable
SSID + connexion auto hotspotApplet de connexion FTP en Java
Problème de connexion à ma base de donnéeLire/ecrire via une connexion telnet en socket
Plus de sujets relatifs à : Prb de connexion de jsf et hibernate


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR