PDA

View Full Version : [JAVA] java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver


mauveron
26-07-2010, 17:19
Ho da poco iniziato ad utilizzare Eclipse per sviluppare un'applicazione web che dovrebbe, tra le altre cose, interagire con un database.

Utilizzo, come server, apache-tomcat-6.0.29, e per la gestione del DB mi appoggio a derby.

Ho seguito questo tutorial

http://db.apache.org/derby/papers/DerbyTut/embedded_intro.html

creando le variabili d'ambiente richieste ed effettuando la verifica proposta alla fine (con il comando java org.apache.derby.tools.sysinfo), che sembra avere un esito positivo.

Su Eclipse ho aggiunto alle librerie del progetto il file derby.jar, che contiene la classe EmbeddedDriver.class.

Tuttavia, quando lancio l'applicazione web, ottengo questo output:

java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.example.sharecode.SqlTools.loadDriver(SqlTools.java:15)
at com.example.sharecode.SharecodeApplication.init(SharecodeApplication.java:22)
at com.vaadin.Application.start(Application.java:549)
at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.startApplication(AbstractApplicationServlet.java:1152)
at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:465)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
c

Qualcuno sa dirmi dove sbaglio? Sono quattro giorni che sto sbattendo la testa al muro, non riesco a procedere nella realizzazione del programma a causa di questo spinoso problema.
Ho cercato ovunque in rete, ed al massimo chi risponde dice di seguire il tutorial che ho già seguito.
Se la classe EmbeddedDriver è proprio lì dove dovrebbe essere, perchè non viene trovata?
Mi affido alla vostra sapienza. :)

gokan
26-07-2010, 20:21
Ciao, se provi a creare la connessione al tuo db direttamente dentro eclipse, funziona?
Facendo in questo modo, tu dai in pasto il jar sopradetto ad eclipse, quindi dovresti vedere se funziona.

Ah, un'altra cosa, hai provato pure a mettere il jar dentro la directory lib di tomcat ?
Forse potrebbe servire.

mauveron
27-07-2010, 08:49
Ho messo il file derby.jar nella cartella /lib di tomcat e l'errore sembra scomparso... ti adoro! :D

gokan
27-07-2010, 21:37
Si, mi ricordavo di aver fatto una cosa simile per la libreria jdbc di un progettino con postgresql.
Meglio così ;)