第四步没有必要 另外你的程序中bound Context了吗? 从“Name jdbc is not bound in this Context”可以看出 这一句有吗?Context ctx = new InitialContext(); DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/SqlServerDB"); con = ds.getConnection().....;"javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null'"这个错误与jdbc driver配置有关,注意路径
<Resource name="jdbc/connectDB" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/connectDB"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>driverClassName</name> <!-- Database Driver Class Name --> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>url</name> <!-- Database Address --> <value>jdbc:microsoft:sqlserver://M5TEMPSERVER:1433;DatabaseName=M5</value> </parameter> <parameter> <name>username</name> <!-- Database User Name --> <value>sa</value> </parameter> <parameter> <name>password</name> <!-- User Password --> <value>7554</value> </parameter> <parameter> <name>maxActive</name> <!-- Maximum number of DB connections in pool.Set to 0 for no limit. --> <value>50</value> </parameter> <parameter> <name>maxIdle</name> <!-- Maximum number of idle DB connections to retain in pool.Set to 0 for no limit. --> <value>10</value> </parameter> <parameter> <name>maxWait</name> <!-- Maximum time to wait for a DB connection to become available in ms.An exception is thrown if this timeout is exceeded.Set to -1 to wait indefinitely. --> <value>-1</value> </parameter> </ResourceParams> </Context>
<ResourceLink name="***" type="javax.sql.DataSourcer" global="***"/>
***为你配置的JNDI
另外你的程序中bound Context了吗?
从“Name jdbc is not bound in this Context”可以看出
这一句有吗?Context ctx = new InitialContext();
DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/SqlServerDB");
con = ds.getConnection().....;"javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null'"这个错误与jdbc driver配置有关,注意路径
首先我配置%tomcathome%/conf/server.xml
然后我写了一个页面如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="javax.naming.Context"%>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>
<%
DataSource ds = null;
try{
Context initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/connectDB");
if(ds!=null){
out.println("get DataSource");
out.println("<br>");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rst=stmt.executeQuery("select * from plc_LadingInfo_mb");
out.println("next is data from database");
while(rst.next()) { %>
您的字段内容为:<%=rst.getString(3)%> <% }
}
else out.println("failed");
}
catch(Exception ne)
{
out.println(ne);
}
%>
运行时页面显示为:
get DataSource
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rst=stmt.executeQuery("select * from plc_LadingInfo_mb");
请高手指点
我在server.xml里面配置如下
<Context path="/m5" docBase="m5" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/connectDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/connectDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<!-- Database Driver Class Name -->
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<!-- Database Address -->
<value>jdbc:microsoft:sqlserver://M5TEMPSERVER:1433;DatabaseName=M5</value>
</parameter>
<parameter>
<name>username</name>
<!-- Database User Name -->
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<!-- User Password -->
<value>7554</value>
</parameter>
<parameter>
<name>maxActive</name>
<!-- Maximum number of DB connections in pool.Set to 0 for no limit. -->
<value>50</value>
</parameter>
<parameter>
<name>maxIdle</name>
<!-- Maximum number of idle DB connections to retain in pool.Set to 0 for no limit. -->
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<!-- Maximum time to wait for a DB connection to become available in ms.An exception is thrown if this timeout is exceeded.Set to -1 to wait indefinitely. -->
<value>-1</value>
</parameter>
</ResourceParams>
</Context>