Oraculo.jdbc.controlador.Oraclepriver ClassNotFoundException
classes12.jar
foi importado como um frasco externo.
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginAction extends HttpServlet {
Connection conn;
Statement stmt;
ResultSet rs;
String query = "SELECT * FROM v_urja_login";
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello");
String u_name = request.getParameter("uname");
String u_pass = request.getParameter("upass");
out.println(u_name);
out.println(u_pass);
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","urja","urja");
stmt = conn.createStatement();
rs = stmt.executeQuery(query);
}catch(SQLException sex){
sex.printStackTrace();
} catch (ClassNotFoundException cnf) {
cnf.printStackTrace();
}
}
}
Stacktrace:
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at LoginAction.doPost(LoginAction.java:27)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
8 answers
Class.forName("oracle.jdbc.driver.OracleDriver");
Esta linha causa ClassNotFoundException
, porque não colocou o ficheiro ojdbc14.jar
na sua pasta lib do projecto. ou ainda não definiu o classpath
frasco necessário
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
Basta adicionar o jjdbc14.jar para o teu classpath.
Os seguintes passos são dados abaixo para adicionar ojdbc14.jar no eclipse:
1) dentro do seu projecto
2) bibliotecas
3) carregue com o botão direito na Biblioteca do sistema JRE
4) Caminho De Compilação
5) Seleccione Configurar A Localização Da Compilação
6) Carregue em Adicionar frascos externos...
7) C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib
Aqui você vai ter ojdbc14.jar9) seleccione aqui
10) abrir
11) ok
Salve e execute o programa que você terá saída.
No Eclipse, o clique direito na sua aplicação
Executar como - > executar configurações- > Seleccione o seu servidor no campo de texto do filtro
Depois, em Claspath sob entradas de Bootstrap Adicione as suas classes 12.jar File e carregue em Aplicar .
Agora, verifica o ficheiro...... Isto funcionou comigo !!
Depois reinicie o servidor no eclipse.
Adicionar ojdbc6.jar para instalação. Carregue com o botão direito no projecto->propriedades->seleccione o conjunto de implantação->carregue em 'Adicionar' ->seleccione 'pacotes do sistema de Ficheiros'->navegue até à pasta onde ojdbc6.o jar está salvo.- >adicionar o frasco - >carregar em terminar - >Aplicar / OK.
Método 2:
Se quiser adicionar ojdbc.jar para as suas dependências maven você segue esta ligação: http://www.mkyong.com/maven/how-to-add-oracle-jdbc-driver-in-your-maven-local-repository/ . . Mesmo que você esteja usando um projeto maven, não é necessário adicionar ojdbc a dependências maven(método 2), o método 1 (adicionando diretamente à montagem de implantação) funciona muito bem.
1.Carregue com o botão direito no seu projecto java.
2.Seleccione "Executar como".
3.Selecione " Executar CONFIGURATIOS...".
4.Aqui, seleccione o seu servidor no lado esquerdo da página e, em seguida, u iria ver a página "caminho da classe" no lado riht,basta clicar nela.
5.Aqui clilck em " entradas do utilizador "e seleccione"Adicionar frascos externos".
6.Selecione " ojdbc14.jar " file.
7.Clique em Aplicar.
8.Clique em Executar.
9.Finalmente reinicie seu servidor, então ele seria executado.
Em Eclipse,
Quando usar o JDBC no seu servlet, o frasco do controlador deve ser colocado na pasta WEB-INF/lib do seu projecto.
Pode adicionar qualquer frasco que tenha uma classe acima indicada, como ojdbc14,ojdbc7, ojdbc6, mas certifique-se que o adicionou ao claspath.