Tomcat5.59
**********************************************************************
server.xml中已配置如下:
<Resource
name="jdbc/redwave"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
password="827126"
maxIdle="2"
maxWait="5000"
username="hongbo"
url="jdbc:oracle:thin:@192.168.0.8:1521:redwave"
maxActive="6"/>
**********************************************************************
在web.xml中配置如下:<resource-ref>
<description>Tomcat DBCP</description>
<res-ref-name>jdbc/redwave</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
***********************************************************************
context.xml中配置如下:<?xml version="1.0" encoding="UTF-8"?>
<Context path="/redwave">
<Resource auth="Container"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxActive="20"
maxIdle="10"
maxWait="-1"
name="jdbc/redwave"
password="827126"
type="javax.sql.DataSource"
url="jdbc:oracle:thin:@192.168.0.8:1521:redwave"
username="hongbo"/>
</Context>
***********************************************************************
我在DB类中这样调用的,打算获得连接:
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)
envCtx.lookup("jdbc/redwave");
Connection con = ds.getConnection();
return con;
*********************************************************************
现在一运行就出如下错误:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at hongshun.commcon.UpdateServlet.main(UpdateServlet.java:87)
***********************************************************************
1.连接池和数据源是按我上面的方法配置吗?如果我上面的方法不对请指出,或者给个例子也行
2.initCtx.lookup("java:comp/env");中("java:comp/env"是写死的吗?)请知道我朋友帮帮忙,我下午结帖.谢谢!
**********************************************************************
server.xml中已配置如下:
<Resource
name="jdbc/redwave"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
password="827126"
maxIdle="2"
maxWait="5000"
username="hongbo"
url="jdbc:oracle:thin:@192.168.0.8:1521:redwave"
maxActive="6"/>
**********************************************************************
在web.xml中配置如下:<resource-ref>
<description>Tomcat DBCP</description>
<res-ref-name>jdbc/redwave</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
***********************************************************************
context.xml中配置如下:<?xml version="1.0" encoding="UTF-8"?>
<Context path="/redwave">
<Resource auth="Container"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxActive="20"
maxIdle="10"
maxWait="-1"
name="jdbc/redwave"
password="827126"
type="javax.sql.DataSource"
url="jdbc:oracle:thin:@192.168.0.8:1521:redwave"
username="hongbo"/>
</Context>
***********************************************************************
我在DB类中这样调用的,打算获得连接:
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)
envCtx.lookup("jdbc/redwave");
Connection con = ds.getConnection();
return con;
*********************************************************************
现在一运行就出如下错误:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at hongshun.commcon.UpdateServlet.main(UpdateServlet.java:87)
***********************************************************************
1.连接池和数据源是按我上面的方法配置吗?如果我上面的方法不对请指出,或者给个例子也行
2.initCtx.lookup("java:comp/env");中("java:comp/env"是写死的吗?)请知道我朋友帮帮忙,我下午结帖.谢谢!
解决方案 »
- 关于在线支付的问题,期待高手解答。
- java执行外部程序报Service Unavilable错误
- iframe
- java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet
- 如何设置或者控制打印机打印纸张的大小?
- 寻人启示:寻找tutor666(小虫),请你进来。
- JSP大小写问题
- 急、急、急,全文检索的高手请进!
- dwr 执行Browser.withAllSessions(run);异常
- 请教 java ajax get数据解析,请问解析了放在页面上
- 请问如何用JavaScript实现点一个图片然后这个图片变成另一个图片?
- 在jsp中不能编译的原因
cachingAllowed="true"
charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true"
crossContext="false"
mapperClass="org.apache.catalina.core.StandardContextMapper"
privileged="true" reloadable="true" swallowOutput="false" useNaming="true"
wrapperClass="org.apache.catalina.core.StandardWrapper"
path="/虚拟路径"
docBase="实际路径"
debug="4">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_emc_log." suffix=".txt"
timestamp="true"/> <!-- Define a database connection pool for MSSQL -->
<Resource name="jdbc/ckg" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/ckg">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name> <value>jdbc:oracle:thin:@127.0.0.1:1521:XXX</value>
</parameter>
<parameter>
<name>username</name>
<value>Program</value>
</parameter>
<parameter>
<name>password</name>
<value>Program</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>100</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>3000</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<value>60</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
</ResourceParams> <ResourceLink global="jdbc/ckg" name="jdbc/ckg" type="javax.sql.DataSource"/> </Context>
public class BaseDAO
{
private static DataSource pool = null;
private static Context env = null;
//private Connection conn = null;
protected String tableName="";
public BaseDAO() throws Exception
{
if (pool != null) return;
try
{
env = (Context) new InitialContext().lookup("java:comp/env");
pool = (DataSource)env.lookup("jdbc/" + AppConstant.APP_ID);
}
catch(NamingException ne)
{
env = null;
pool = null;
System.out.println(ne.getMessage());
throw new Exception(ne.getMessage());
}
}
public Connection getConn() throws AppException
{
try
{
if (pool == null)
throw new Exception("Data source invalid!");
else
return pool.getConnection();
}
catch(SQLException e)
{
throw new Exception(e.getMessage());
}
}
public void closeConn(Connection conn)
{
try
{
if (conn != null) conn.close();
}
catch (Exception e)
{
}
}
}
public class BaseDAO
{
private static DataSource pool = null;
private static Context env = null;
//private Connection conn = null;
protected String tableName="";
public BaseDAO() throws Exception
{
if (pool != null) return;
try
{
env = (Context) new InitialContext().lookup("java:comp/env");
pool = (DataSource)env.lookup("jdbc/" + AppConstant.APP_ID);//数据源名称
}
catch(NamingException ne)
{
env = null;
pool = null;
System.out.println(ne.getMessage());
throw new Exception(ne.getMessage());
}
}
public Connection getConn() throws AppException
{
try
{
if (pool == null)
throw new Exception("Data source invalid!");
else
return pool.getConnection();
}
catch(SQLException e)
{
throw new Exception(e.getMessage());
}
}
public void closeConn(Connection conn)
{
try
{
if (conn != null) conn.close();
}
catch (Exception e)
{
}
}
}
1. http://localhost:8080/admin/
Resource-Data source -> DataSourceActions ->Create New Data Source
JNDI Name:MyDataSource
Data Source URL:jdbc:mysql://localhost/datasource
JDBC Driver Class:org.gjt.mm.mysql.Driver
User Name:root
Password:*********
2.web.html中加
<resource-ref>
<description>DB Connection</description>
<res-ref-name>MyDataSource</res-ref-name>
<res-type>javax.sql.DataSource<res-type>
<res-auth>Container</res-auth>
</resource-ref>
3.测试页面
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false" %>
<%@ page contentType="text/html;charset=GB2312" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<%
DataSource ds = null;
Connection conn=null;
Statement stmt=null;
try{
InitialContext ctx=new InitialContext();
ds=(DataSource)ctx.lookup("java:comp/env/MyDataSource");
conn = ds.getConnection();
stmt = conn.createStatement();
String strSql = " select * from user";
ResultSet rs = stmt.executeQuery(strSql);
while(rs.next()){
out.print("用户名为。"+rs.getString(1));
} if(rs!=null){rs.close();}
if(stmt!=null){stmt.close();}
if(conn!=null){conn.close();}
}
catch(Exception e){
e.printStackTrace();
}
%>
</head>
<body>
</body>
</html>
<jsp编程技巧集锦> 需要请和我联系:[email protected]