2011-08-14 55 views
0

我正在使用Eclispe ganymede,tomcat6和oracle 10g XE。我连接了所有这些。一切工作正常。无法连接Tomcat 6和Oracle 10g XE以实现jsp数据库连接

但我创建了一个jsp文件,该文件在数据库中创建了一个不工作的表。没有错误。但是当我检查数据库时没有创建表。

我的编码:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>Insert title here</title> 
    </head> 
    <body> 
    <%@page import="java.sql.*" %> 
    <% 
    Connection con=null; 
     try 
    { 
       Class.forName("oracle.jdbc.driver.OracleDriver"); 
     con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","123"); 
     Statement stmt=con.createStatement(); 
     stmt.executeUpdate("create table Black (" 
        + " id INT PRIMARY KEY, firstName VARCHAR(20), lastName VARCHAR(20), " 
        + " title VARCHAR(20), salary INT " + ")"); 
     out.println("Table Created"); 

    } 
    catch(ClassNotFoundException e) 
    { 
     out.println(e.getMessage()); 
    } 
    catch(NamingException e) 
    { 
    out.println(e.getMessage());  
    } 
    finally 
    { 
     try 
     { 

      if(con!=null) 
       con.close(); 

     } 
     catch(SQLException e) 
     { 
     } 
    } 
    %> 

    </body> 
    </html> 

这是错误说:

抛出java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver 在org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1387) 在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) 在org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128) 在有机.apache.jasper.servlet.JasperLoader.loadClass(Jasp erlang.java:66) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org.apache .jsp.data_jsp._jspService(data_jsp.java:73) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717 ) 在org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) 在org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) 在org.apache.jasper.servlet .JspServlet.service(JspServlet.java:267) 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) 在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在org.apache.catalina.connector。 CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http1 1Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint $ Worker.run( JIoEndpoint.java:454) at java.lang.Thread.run(Unknown Source) java.lang.ClassNotFoundException:oracle.jdbc.OracleDriver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387 ) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128) at org.apache.jasper.servlet .JasperLoader.loadClass(JasperLoader.java:66) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org.apache.jsp.data_jsp._jspService(data_jsp.java:73) at org.apache。 jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet。(org.apache.jasper.servlet.JspServlet.java:342) (org.apache)。 jasper.servlet.JspServlet.service(JspServlet.java:267) 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.Stand ardHostValve.invoke(StandardHostValve.java:128) 在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) 在org.apache.coyote.http11。 Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Unknown Source) java.lang.ClassNotFoundException:oracle.jdbc.OracleDriver at org.apache.catalina.loader.WebappClassLoader.loadClass(W ebappClassLoader.java:1387) 在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) 在org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128) 在有机apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class。 forName(Unknown Source) at org.apache.jsp.data_jsp._jspService(data_jsp.java:73) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http .HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapp er.java:374) 在org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) 在org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) 在的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) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在org.apache。 catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.Er rorReportValve.invoke(ErrorReportValve.java:102) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) 在org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:583) 在org.apache.tomcat。 util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Unknown Source)

现在任何人都告诉我如何将此程序连接到数据库。

+0

它是怎么去包含oracle驱动程序后?您可以将Oracle驱动程序jar放在项目的构建路径中,或者放在tomcat中的lib /下。 – rapadura

+0

我已经把oracle驱动程序放到了我的构建路径中,并且引发了这个错误。 – user893647

+0

那么错误是由于构建/运行配置,而不是在你的代码。 ClassNotFoundException表示某处存在缺少.jar文件。应该发现它是否在你运行的tomcat服务器的lib目录下。它可以在你的构建路径中,但不在你的.war或.ear中,或者你在部署它。 – rapadura

回答

2

什么是输出,是否有堆栈跟踪?你有没有将数据源定义为testdb?

不管怎样,你都不应该从JSP页面上执行sql语句,把sql语句放在DAO后面或使用Hibernate或类似的ORM工具。

这是Oracles JDBC驱动程序的http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html的下载页面。为您的数据库和Java虚拟机的匹配版本进行匹配。并把它放在你的tomcats lib /目录下。

+0

再次检查有堆栈跟踪 – user893647

1

提出的任何异常?不要在Jsp中使用JDBC连接代码,而应该保留在DAO类中。

或者可以使用Jsp标签库。

SQL Tag Library

检查这个环节来解决问题。

Oracle.jdbc. driver.OracleDriver problem

+0

没有得到什么汝说......请详细说明? ? – user893647

+0

根据Exception java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver Oracle驱动程序不在classpath中。 –

+0

在类路径中包含classes12.jar –

1

您需要在您的部署大会ojdbc14.jar文件在您的项目。 使用eclipse:

proj - >属性 - >部署程序集 - >添加 - >添加你的jar文件。

0

我想补充一点,在我的项目,我不得不改变来自:

String driverName = "oracle.jdbc.driver.OracleDriver"; 

String driverName = "oracle.jdbc.OracleDriver"; 

我使用Oracle数据库11g第2版