当前位置: 技术问答>java相关
请教我为何在jb7下不能使用连接池
来源: 互联网 发布时间:2015-09-15
本文导语: 工程文件建立在:G:vodVod目录下 web.xml文件位于:G:vodVoddefaultrootWEB-INF 我的web.xml文件如下: servlet1 vod.Servlet1 servlet1 /servlet1 Resource reference to a factory for java.sql.Conne...
工程文件建立在:G:vodVod目录下
web.xml文件位于:G:vodVoddefaultrootWEB-INF
我的web.xml文件如下:
servlet1
vod.Servlet1
servlet1
/servlet1
Resource reference to a factory for java.sql.Connection instances that may be used for talking to a particular database that is configured in the server.xml file.
jdbc/MysqlDB
javax.sql.DataSource
Container
我在位于D:JBuilder7jakarta-tomcat-4.0.3conf目录中的server.xml文件的末尾标签
之前插入
user
DateBase
password
sailing
driverClassName
org.gjt.mm.mysql.Driver
driverName
jdbc:mysql://localhost/gdmovie
我的Servlet1的内容为,在jb7中执行run时的URL为:http://localhost:8080/servlet1
package vod;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import javax.naming.Context;
import javax.sql.DataSource;
import javax.naming.InitialContext;
import java.sql.Connection;
public class Servlet1 extends HttpServlet {
static final private String CONTENT_TYPE = "text/html";
Connection conn;
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
DataSource ds = null;
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/MysqlDB");
//conn=ds.getConnection();
if(ds!=null)
out.println("Connection is OK!");
else
out.println("Fail!");
}catch(Exception ne){ out.println(ne);}
}
}
请问为何我每次执行结果都为Fail! ?
我已经阅读过了相关的文章,他们都是将文件拷贝到tomcat的webapps下面运行
的,我希望能够在其他的目录也能使用,但是经过多次尝试均告失败。
解答者本人定100分奉上。
web.xml文件位于:G:vodVoddefaultrootWEB-INF
我的web.xml文件如下:
servlet1
vod.Servlet1
servlet1
/servlet1
Resource reference to a factory for java.sql.Connection instances that may be used for talking to a particular database that is configured in the server.xml file.
jdbc/MysqlDB
javax.sql.DataSource
Container
我在位于D:JBuilder7jakarta-tomcat-4.0.3conf目录中的server.xml文件的末尾标签
之前插入
user
DateBase
password
sailing
driverClassName
org.gjt.mm.mysql.Driver
driverName
jdbc:mysql://localhost/gdmovie
我的Servlet1的内容为,在jb7中执行run时的URL为:http://localhost:8080/servlet1
package vod;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import javax.naming.Context;
import javax.sql.DataSource;
import javax.naming.InitialContext;
import java.sql.Connection;
public class Servlet1 extends HttpServlet {
static final private String CONTENT_TYPE = "text/html";
Connection conn;
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
DataSource ds = null;
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/MysqlDB");
//conn=ds.getConnection();
if(ds!=null)
out.println("Connection is OK!");
else
out.println("Fail!");
}catch(Exception ne){ out.println(ne);}
}
}
请问为何我每次执行结果都为Fail! ?
我已经阅读过了相关的文章,他们都是将文件拷贝到tomcat的webapps下面运行
的,我希望能够在其他的目录也能使用,但是经过多次尝试均告失败。
解答者本人定100分奉上。
|
大哥,这两天我也是一直在研究这个问题,现在终于弄清楚了。
关键在于Apache Tomcat的DBCP(Database Connection Pool)需要以下几个Jakarta的常用组件的支持:
Jakarta-Commons DBCP 1.0
Jakarta-Commons Collections 2.0
Jakarta-Commons Pool 1.0
它们都可以在http://jakarta.apache.org/commons/index.html里面找到,把它们下下来。三个相应的jar文件拷贝到$CATALINA_HOME/common/lib目录下面。重启Tomcat,再运行你的程序,看到了什么。
成功了不要忘记谢我!
关键在于Apache Tomcat的DBCP(Database Connection Pool)需要以下几个Jakarta的常用组件的支持:
Jakarta-Commons DBCP 1.0
Jakarta-Commons Collections 2.0
Jakarta-Commons Pool 1.0
它们都可以在http://jakarta.apache.org/commons/index.html里面找到,把它们下下来。三个相应的jar文件拷贝到$CATALINA_HOME/common/lib目录下面。重启Tomcat,再运行你的程序,看到了什么。
成功了不要忘记谢我!
|
ds = (DataSource)initCtx.lookuplookup("java:comp/env/jdbc/MysqlDB");
|
在extras目录中的tomcat你试试看