Lev
Lev

Reputation: 833

Cannot resolve oracle.jdbc.OracleDriver

I am trying to do a dummy test with jsp/Oracle using ojdbc6.jar, the code as follows (Test.jsp):

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.sql.*"%>
<%@page import="oracle.sql.*" %>
<%@page import="oracle.jdbc.OracleDriver" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>


<html>
<head>

<title>Test</title>
</head>
<body>

<%
    Connection con = null;
    Class.forName("oracle.jdbc.OracleDriver");
    con = DriverManager.getConnection("jdbc:oracle:thin:@host:1521:oracledb",
            "user", "password");        
    con.close();
%>

</body>
</html>

When i execute it over Apache Tomcat server, I get this error:

Jan 08, 2017 12:31:05 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: El Servlet.service() para el servlet [jsp] en el contexto con ruta [/Gest1] lanzó la excepción [No se puede compilar la clase para JSP: 

Ha tenido lugar un error en la línea: [16] en el fichero java generado: [C:\Proyecto\tomcat\apache-tomcat-9.0.0.M15-windows-x64\apache-tomcat-9.0.0.M15\work\Catalina\localhost\Gest1\org\apache\jsp\Test_jsp.java]
Only a type can be imported. oracle.jdbc.OracleDriver resolves to a package

Stacktrace:] con causa raíz
org.apache.jasper.JasperException: No se puede compilar la clase para JSP: 

Ha tenido lugar un error en la línea: [16] en el fichero java generado: [C:\Proyecto\tomcat\apache-tomcat-9.0.0.M15-windows-x64\apache-tomcat-9.0.0.M15\work\Catalina\localhost\Gest1\org\apache\jsp\Test_jsp.java]
Only a type can be imported. oracle.jdbc.OracleDriver resolves to a package

Stacktrace:
    at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
    at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:212)
    at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:457)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:377)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:333)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:600)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)

I am not sure whether my classpath is configured correctly or not, I think it is because it seems the another sniplet import Oracle.sql worked.

Upvotes: 0

Views: 10804

Answers (4)

user7357653
user7357653

Reputation:

  Class.forName("oracle.jdbc.driver.OracleDriver");

you have missed driver

Upvotes: 1

Birhan Nega
Birhan Nega

Reputation: 681

Class.forName("oracle.jdbc.OracleDriver"); ------>incorrect

Class.forName("oracle.jdbc.driver.OracleDriver");

use the second one. i hope it helps you

Upvotes: 1

Lev
Lev

Reputation: 833

I think I got it.

Project Properties -> Deployment Assembly -> Add -> Java Build Path Entries -> ojdbc6.jar

and then Apply. Thanks everyone!.

Upvotes: 0

Subhroneel
Subhroneel

Reputation: 112

I don't understand why you are importing oracle.jdbc.OracleDriver.* You have already imported java.sql.*. And also provided class.forName('oracle.jdbc.OracleDriver'). So remove the lines

<%@page import="oracle.sql.*" %>
<%@page import="oracle.jdbc.OracleDriver" %>

And be sure you have added ojdbc6.jar in tomat lib folder.

Upvotes: 0

Related Questions