<parameter>
<name>factory</name>
<value>
org.apache.commons.dbcp.BasicDataSourceFactory//没有这个包,是不是要另外下载,下载之后放到哪?
~~~~~~~~~~~~~~~~~——》放到tomact的common/lib下面 </value>
</parameter>
<parameter>
<name>username</name>
<value></value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>net.sourceforge.jtds.jdbc.Driver</value>//这个包是从哪冒出来的,我没有这个包!
*************************************************************************************
这个是某个数据库(偶也没见过这个驱动)的驱动程序类,可以到http://sourceforge.net下载。
*************************************************************************************
</parameter>
<parameter>
<name>url</name>
<value>
jdbc:jtds:sqlserver://127.127.127.127:1433/books
***************************************************************************
从这里看,上面那个驱动是sql server的驱动,但是这个url应该是127.0.0.1吧
***************************************************************************
</value>
</parameter>
</ResourceParams>
</Resource>
</context>
<name>factory</name>
<value>
org.apache.commons.dbcp.BasicDataSourceFactory//没有这个包,是不是要另外下载,下载之后放到哪?
~~~~~~~~~~~~~~~~~——》放到tomact的common/lib下面 </value>
</parameter>
<parameter>
<name>username</name>
<value></value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>net.sourceforge.jtds.jdbc.Driver</value>//这个包是从哪冒出来的,我没有这个包!
*************************************************************************************
这个是某个数据库(偶也没见过这个驱动)的驱动程序类,可以到http://sourceforge.net下载。
*************************************************************************************
</parameter>
<parameter>
<name>url</name>
<value>
jdbc:jtds:sqlserver://127.127.127.127:1433/books
***************************************************************************
从这里看,上面那个驱动是sql server的驱动,但是这个url应该是127.0.0.1吧
***************************************************************************
</value>
</parameter>
</ResourceParams>
</Resource>
</context>
这个类的作用是什么?看文章上的介绍没看懂!最好说得通俗点!现有的类有没有能替代它的?
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
是不是还有哪配置不对!
另外,我将net.sourceforge.jtds.jdbc.Driver这个换成了com.microsoft.jdbc.sqlserver.SQLServerDriver这个,应该没问题吧?下面是我在程序中的代码片断,大家看看有没有错误(我是按照书上写的):
try{
InitialContext ic = new InitialContext();
DataSource source = (DataSource)ic.lookup("jdbc/books");
//这里原来是“java:comp/env/jdbc/books”,但是我想不通为什么要加“java:comp/env/”这个,所以就去掉了,当然加上也不行!
titlesQuery = connection.prepareStatement(
"SELECT * FROM titles");
}
catch(Exception ce){
ce.printStackTrace();
}我觉着还是配置有问题,代码可能有点长,但我还是恳求各位能仔细得看一下!我的分用完了,不然肯定给!
debug = "0" reloadable = "true" crossContext = "true">
<Resource name = "jdbc/books" auth="Container"
~~~~~~~~~~~~~ type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/connectDB">
~~~~~~~~~~~~~~~
这两个怎么名字不一样了,这样jdbc/books就没有配置的参数了
如果配置文件没错会不会是因为我的文件放到位置不对?
目录结构:
webapps\test\WEB-INF\classes
jsp文件在test下面
web.xml在WEB-INF下面
我又重新写了一遍server.xml,各位看一下有没有错误:
==========================================================================================
<Context path="/test" docBase="D:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\test" debug="5" reloadable="true" crossContext="true"> <Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/>
<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/test">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value></value>
</parameter>
<parameter>
<name>password</name>
<value></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=Northwind
</value>
</parameter>
</ResourceParams>
</Context>
org.apache.jasper.JasperException: Unable to compile class for JSP
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:97)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:346)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:414)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause Unable to find a javac compiler;(怎么会找不到编译器?听朋友说要将jdk里面的tools.jar复制到tomcat的目录下,是这样吗?)
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK
org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:106)
org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:935)
org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:764)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:382)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
package foo;import javax.naming.*;
import javax.sql.*;
import java.sql.*;public class Test { String foo = "Not Connected";
int bar = -1; public void init() {
try{
Context ctx = new InitialContext();
if(ctx == null )
throw new Exception("Boom - No Context");
DataSource ds = (DataSource)ctx.lookup("jdbc/test");
if (ds != null) {
Connection conn = ds.getConnection();
if(conn != null) {
foo = "Got Connection " + conn.toString();
Statement stmt = conn.createStatement();
ResultSet rst = stmt.executeQuery("select * from exam");
if(rst.next()) {
foo=rst.getString("value");
bar=rst.getInt("id");
}
conn.close();
}
}
}//end try
catch(Exception e) {
e.printStackTrace();
}
}//end init()
public String getFoo() {
return foo;
}
public int getBar() {
return bar;
}
}这是jsp的代码:
<%@
page language = "java"
import = "foo.*"
%>
<html>
<head>
<title>DB Test</title>
</head>
<body> <%
Test tst = new Test();
tst.init();
%>
<h2>Ms sql server 2000 java search Results</h2>
Foo <%= tst.getFoo() %><br/>
Bar <%= tst.getBar() %></body>
</html>
页面显示的是:“Not Connected”和 “-1”,好像init()没有执行,不知是为什么?
这行里的databasename是不是要改成DatabaseName啊