java .lang.ClassNotFoundException: драйвер в сервлете при подключении oracle базы данных - PullRequest
0 голосов
/ 27 марта 2020

Я работаю над сервлетом. При подключении файла Oracle db через web.xml его выдача ниже исключения.

java .lang.ClassNotFoundException: драйвер в org. apache .catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase . java: 1365) в орг. apache .catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase. java: 1188) в java .lang.Class.forName0 (собственный метод) в java .lang .Class.forName (Неизвестный источник) в com.harshidhee.servlet.DBCont.doGet (DBCont. java: 55) в com.harshidhee.servlet.DBCont.doPost (DBCont. java: 128) в

Это мой код

public class DBCont extends HttpServlet{

@Override
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    PrintWriter pw=null;
    Connection con=null;
    Statement st=null;
    ResultSet rs=null;
    ServletConfig cg=null;
    String driver=null,url=null,user=null,pwd=null;
    int no=0;
    pw=res.getWriter();
    res.setContentType("text/html");
    no=Integer.parseInt(req.getParameter("eno"));
    cg=getServletConfig();
    driver=cg.getInitParameter("dbdriver");
    url=cg.getInitParameter("dburl");
    user=cg.getInitParameter("dbuser");
    pwd=cg.getInitParameter("dbpwd");

    Class.forName("driver");
    //establish the connection
    con=DriverManager.getConnection("url","user","pwd");
    //create the statement
    if(con!=null)
    st=con.createStatement();
    //set the resulttset
    if(st!=null)
    rs=st.executeQuery("SELECT EMPNO,EMPNAME,EMPJOB,EMPSAL,EMPDEP FROM EMPLOYEE WHERE EMPNO="+no);
    if(rs.next()) {
        pw.println(" Employee Id::"+rs.getInt(1));
        pw.println("<br> Employee Name::"+rs.getString(2));
        pw.println("<br> Employee Job::"+rs.getString(3));
        pw.println("<br> Employee Salary::"+rs.getDouble(4));
        pw.println("<br> Employee Dep::"+rs.getString(5));
    }
    else { 
        pw.println("Employee Id not found");
        throw new IllegalArgumentException("Employee Id not found");
    }                   
}

Это мой web.xml код файла

  <servlet>
    <servlet-name>db</servlet-name>
    <servlet-class>com.harshidhee.servlet.DBCont</servlet-class>
    <init-param>
        <param-name>dbdriver</param-name>
        <param-value>oracle.jdbc.driver.OracleDriver</param-value>
    </init-param>
    <init-param>
        <param-name>dburl</param-name>
        <param-value>jdbc:oracle:thin:@localhost:1521:xe</param-value>
    </init-param>
    <init-param>
        <param-name>dbuser</param-name>
        <param-value>System</param-value>
    </init-param>
    <init-param>
        <param-name>dbpwd</param-name>
        <param-value>System</param-value>
    </init-param> 
  </servlet>
  <servlet-mapping>
        <servlet-name>db</servlet-name>
        <url-pattern>/dburl</url-pattern>
  </servlet-mapping>

Когда я жестко кодирую значения свойств db, он работает нормально , Как я могу решить эту проблему?

1 Ответ

1 голос
/ 27 марта 2020

Можете ли вы изменить строку ниже

con=DriverManager.getConnection("url","user","pwd");

К,

con=DriverManager.getConnection(url,user,pwd);
...