请看http://community.csdn.net/Expert/topic/3091/3091415.xml?temp=1.356143E-02
解决方案 »
- 在一个可执行jar包里有个类a.class,同目录下还有a$1.class,a$2.class,请问这些是什么文件
- java中过滤重复
- Could not find action or result 问题
- 请问spring 中如何注入一个内部类?
- websphere application client里面通过jndi得到datasource时抱Null userid???
- <html:text property=".."/> 无法显示 在线等大虾帮忙
- 请问一个关于sitemesh的问题
- 关于RMI的问题!多谢各位大仙!急!急!急!
- jbuilderx下发布ejb时的warning
- 小型java数据库程序使用什么数据库较好 ?
- 菜鸟问:在一个工程中定义了两个类,如何互相引用阿?
- ant 这个编译工具的用法资料在哪里可以查到
我怎么看着就想你从哪边COPY后没有改的呀?
增加如下代码,注释掉<Context></Context>,否则Tomcat无法启动
<!--<Context path="/ch13" docBase="ch13" debug=0 reloadable="true" crossContext="true"> -->
<Resource name="jdbc/bn" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/bn">
<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://127.0.0.1:1433;DatabaseName=jspdev</value>
</parameter>
<parameter>
<name>username</name>
<value>bn</value>
</parameter>
<parameter>
<name>password</name>
<value>bn</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>
<!--</Context>-->其次在/webapps/ch13中的web.xml中增加如下代码,Tomcat启动没有任何问题
<resource-ref>
<description>Datasource example</description>
<res-ref-name>jdbc/jspdev</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
最后用如下的代码测试,页面显示错误:javax.naming.NameNotFoundException: Name bn is not bound in this Context
<!--测试资料源-->
<%@ 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");//这一句的作用是什么?这样写对吗?
//从Context中lookup数据源
ds = (DataSource)envCtx.lookup("jdbc/bn");
if (ds != null)
{
out.println("已经获得DataSource!");
out.println("<br>");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rst = stmt.executeQuery("select * from book");
out.println("以下是从数据库取出的数据");
while(rst.next())
{
out.println("bookName:"+rst.getString("bookName"));
out.println("<br>");
}
}
else
{
out.println("连接失败!");
}
}
catch(Exception e)
{
out.println(e);
}
%>