Problème de connexion à la database [STRUTS] - Java - Programmation
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 ?
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.
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?