TOMCAT6.0连接池连接sqlserver(解决Cannot createJDBC driver of class for connect URL'null
用tomcat6.0连接池和hibernate3.2+spring2.5连接数据库时出现以下异常:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:89)
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(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at 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.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at com.microsoft.sqlserver.jdbc.Util.parseUrl(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.acceptsURL(Unknown Source)
at java.sql.DriverManager.getDriver(Unknown Source)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1143)
... 20 more
望高手帮们解决:
jsp页面为:
<%@ page language="java" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<html>
<head>
<title>Test of Tomcat connection pool</title>
</head>
<body>
<%
out.print("strat test connection pool!<br/>");
try{
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env/");
Object obj = (Object) ctx.lookup("jdbc/Hotel");
DataSource ds = (javax.sql.DataSource)obj;
Connection conn = ds.getConnection();
out.print("tomcat sqlserver connection pool runs perfectly!");
conn.close();
}
catch(Exception ex){
out.print(ex.getMessage());
ex.printStackTrace();
}
%>
</body>
</html>
页面输出为:
strat test connection pool!
Cannot create JDBC driver of class '' for connect URL 'null'
[解决办法]
http://topic.csdn.net/u/20090904/08/e674f0f3-ec3b-4ea0-8e5f-5ed35788165a.html
看2楼
[解决办法]
一样的啊。
<!-- appName 为项目名 --!> <Context path="/appName" docBase="appName" auth="Container"> <Resource name="jdbc/SQLServerDS" scope="Shareable" type="javax.sql.DataSource" url="jdbc:sqlserver://localhost:1433;databaseName=Hotel" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" username="sa" password="" maxWait="3000" maxIdle="100" maxActive="10" /> </Context>
[解决办法]
1 可能没有相关的库jar
2 可能是服务器问题,换一个tomcat测试一下
[解决办法]
3 jar冲突了,删除多余的
[解决办法]
如1楼所说,应该是tomcat的server .xml配置有问题。
10楼说的情况也有可能。
[解决办法]
正确配置context.xml后就不用配置server.xml了
建议你先写个jsp,里边写获取连接的代码,测试下能否成功
还有 你的spring的配置 这样试下
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/Hotel</value>
</property>
</bean>
<beans>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<list>
<value>HIBERNATE OR</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
</props>
</property>
</bean>
</beans>