[STRUTS] Problème de connexion à la database

Problème de connexion à la database [STRUTS] - Java - Programmation

Marsh Posté le 15-03-2004 à 10:41:38    

J'essaie de développer avec struts une interface qui permet d'interroger une base de données.
Je test ma connexion en réalisant un formulaire qui lorsque l'on clique sur le bouton éxécute une requête.
Mais j'ai un message d'erreur qui apparaît:
 
javax.servlet.ServletException: "Servlet.init()" pour la servlet action a généré une exception
 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
 org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
 org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
 java.lang.Thread.run(Thread.java:534)
et  
java.lang.NoClassDefFoundError: org/apache/struts/legacy/GenericDataSource
 java.lang.ClassLoader.defineClass0(Native Method)
 java.lang.ClassLoader.defineClass(ClassLoader.java:537)
 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
 org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1677)
 org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:900)
 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1350)
 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1230)
 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
 org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:1084)
 org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
 javax.servlet.GenericServlet.init(GenericServlet.java:256)
 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
 org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
 org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
 java.lang.Thread.run(Thread.java:534)
 
 
J'ai dans mon fichier struts-config.xml ceci:
<data-source type="org.apache.commons.dbcp.BasicDataSource">
     <set-property
        property="driverClassName"
        value="oracle.jdbc.driver.OracleDriver" />
     <set-property
        property="url"
        value="jdbc:oracle:thin:@ip:port:nom" />
     <set-property
        property="username"
        value="" />
     <set-property
        property="password"
        value="" />
      <set-property
        property="maxActive"
        value="10" />
      <set-property
        property="maxWait"
        value="5000" />
      <set-property
     property="defaultAutoCommit"
        value="false" />
     <set-property
      property="defaultReadOnly"
        value="false" />
       
    <set-property
        property="validationQuery"
        value="SELECT Type.Name FROM Type" />
   
   
  </data-source>
 </data-sources>
 
et dans ma classe Action :  
public class LoginAction extends Action {
  public ActionForward execute (
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
  throws IOException, ServletException {
   
   javax.sql.DataSource dataSource;
   java.sql.Connection myConnection;
  try {
   
   dataSource = getDataSource(request);
   myConnection = dataSource.getConnection();    Statement st = myConnection.createStatement();
   String query="SELECT Type.Name"
      +" FROM Type";
   ResultSet rs = st.executeQuery(query);      System.out.println(rs);
     
     rs.close();
    st.close();
    myConnection.close();  
    }  
    catch (SQLException sqle) {
    getServlet().log("Connection.process", sqle);
    }  
     if (request.getSession().getServletContext().getAttribute("users" ) == null ){
       Vector users = new Vector();
       request.getSession().getServletContext().setAttribute("users", users);
      }
   
   return (mapping.findForward("mainmenu" ));
   }
}
 
 
 
Désolé c un peu long mais je ne sais plus quoi faire.
Y a t il d'autres fichiers à créer? Et dans ce cas où les installer?

Reply

Marsh Posté le 15-03-2004 à 10:41:38   

Reply

Marsh Posté le 15-03-2004 à 10:50:25    

Pour qq infos:
 
http://www.jguru.com/faq/view.jsp?EID=1069993
 
trouvé ici http://www.e-vati.com/index.php?doc=postgresql:
 
if you get  
java.lang.NoClassDefFoundError: org/apache/struts/legacy/GenericDataSource
this is because you must add struts-legacy.jar within your WEB-INF/lib directory
nb: struts-legacy.jar is provided in struts-1.1 download
 
Apparemment, tu tentes de charger l'ancienne version de la datasource (cf legacy). Peut-être y a-t-il une autre manière de faire ce que tu veux ?


Message édité par machinbidule1974 le 15-03-2004 à 10:55:23
Reply

Marsh Posté le 15-03-2004 à 11:04:59    

Oups... il manquait tout simplement le struts-legacy .jar.
Je n'ai pas pensée a vérifier si ce package était présent ou non.
 
Merci de ta réponse cela m'a permis de trouver ma pitoyable erreur.


Message édité par vincenzo2004 le 15-03-2004 à 11:37:11
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed