照上面做了. 显示:javax.naming.NameNotFoundException: Name sqlserver is not bound in this Context 请问下面省略号中应该填什么,我的参考资料中直接<Context path=""> <Context path="/.....................> <Resource auth="Container" description="SQL Server Connection" name="jdbc/dataSources" type="javax.sql.DataSource"/>
<Context path="/.....................>
<Resource auth="Container" description="SQL Server Connection" name="jdbc/dataSources" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/dataSources">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>50</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>1000</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
<parameter>
<name>url</name> <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=netstore</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
</ResourceParams>
</Context>
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>
<%
try{
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
Object obj=(Object) ctx.lookup("jdbc/sqlserver");
javax.sql.DataSource ds=(javax.sql.DataSource)obj;
out.println("已经获得DataSource!");
out.println("<br/>");
Connection conn = ds.getConnection();
Statement stmt=conn.createStatement();
ResultSet rst=stmt.executeQuery("select * from guest");
out.println("以下是从数据库中读取出来的数据");
while(rst.next())
{
out.println("num:"+rst.getString(1));
out.println("<br/>");
}
}catch(Exception ne)
{
out.println(ne);
}
%>
结果显示:javax.naming.NamingException: Could not create resource factory instance, com.microsoft.jdbc.sqlserver.SQLServerDriver
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>
<%
try{
Context initCtx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/sqlserver");
out.println("已经获得DataSource!");
out.println("<br/>");
Connection conn = ds.getConnection();
Statement stmt=conn.createStatement();
ResultSet rst=stmt.executeQuery("select * from guest");
out.println("以下是从数据库中读取出来的数据");
while(rst.next())
{
out.println("num:"+rst.getString(1));
out.println("<br/>");
}
}catch(Exception ne)
{
out.println(ne);
}
%>
显示:javax.naming.NameNotFoundException: Name sqlserver is not bound in this Context
请问下面省略号中应该填什么,我的参考资料中直接<Context path="">
<Context path="/.....................>
<Resource auth="Container" description="SQL Server Connection" name="jdbc/dataSources" type="javax.sql.DataSource"/>
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_DBTest_log." suffix=".txt" timestamp="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>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=shop</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>123</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
</ResourceParams> </Context>
以前写的<Context path="/.....................> PATH省略号随便添个虚拟路径 比如说你是NETSTORE J就写个NETSTORE 那访问路径就是http://localhost:8080/NETSTORE 了 docBase就要写好了 就是WEB应用根目录