0
点赞
收藏
分享

微信扫一扫

Tomcat7.0配置C3P0连接池时,出现NoInitalContextException

Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial


at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)


at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)


at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)


at javax.naming.InitialContext.lookup(InitialContext.java:392)


at TestTomcat.main(TestTomcat.java:34)



type Exception report



message javax.servlet.ServletException: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'



description The server encountered an internal error that prevented it from fulfilling this request.



exception



org.apache.jasper.JasperException: javax.servlet.ServletException: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'


org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)


org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)


org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)


org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)


javax.servlet.http.HttpServlet.service(HttpServlet.java:728)




root cause



javax.servlet.ServletException: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'


org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:912)


org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:841)


org.apache.jsp.index_jsp._jspService(index_jsp.java:120)


org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)


javax.servlet.http.HttpServlet.service(HttpServlet.java:728)


org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)


org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)


org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)


javax.servlet.http.HttpServlet.service(HttpServlet.java:728)




root cause



org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'


org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452)


org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)


org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)


org.apache.jsp.index_jsp._jspService(index_jsp.java:80)


org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)


javax.servlet.http.HttpServlet.service(HttpServlet.java:728)


org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)


org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)


org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)


javax.servlet.http.HttpServlet.service(HttpServlet.java:728)




root cause



java.lang.NullPointerException


sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)


sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)


sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)


java.sql.DriverManager.getDriver(DriverManager.java:253)


org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)


org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)


org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)


org.apache.jsp.index_jsp._jspService(index_jsp.java:80)


org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)


javax.servlet.http.HttpServlet.service(HttpServlet.java:728)


org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)


org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)


org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)


javax.servlet.http.HttpServlet.service(HttpServlet.java:728)




note The full stack trace of the root cause is available in the Apache Tomcat/7.0.33 logs.



解决方案是:


You can do this by creating a src/main/webapp/META-INF/context.xml (I'm assuming you're using the standard maven directory structure - if not, then the META-INF folder should be a sibling of your WEB-INF directory). The contents of the META-INF/context.xml file would look something like:


xml version="1.0" encoding="UTF-8"?>

<Context path="/DemoJDBC" docBase="DemoJDBC"
crossContext="true" reloadable="true" debug="1">

<Resource name="jdbc/connPool" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
username="system" password="123" maxActive="20" maxIdle="10" maxWait="-1"/>
Context>


举报

相关推荐

0 条评论