我用的是Tomcat5.5,数据源配置与代码应该都没问题但是连不上数据源这是为什么?急!!
null
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 com.ccit.xyy.util.DBUtils.init(DBUtils.java:34)
at com.ccit.xyy.util.DBUtils.<init>(DBUtils.java:21)
at com.ccit.xyy.util.DBUtils.main(DBUtils.java:77)
com.ccit.xyy.util.DBUtils@61de33
package com.ccit.xyy.util;
import java.sql.SQLException;
import javax.naming.*;
import javax.sql.*;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
/**
* @author XYY
* @创建时间 2010年02月20日21点05分
* @version 1.1
* @描述 连接数据库,使用数据源
* @类名 DBUtils
*/
public class DBUtils {
private DataSource ds = null;
public DBUtils() {
init();
}
/**
* 初始化一个数据源
*/
private void init() {
try {
/*Hashtable env=new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"");
env.put(Context.PROVIDER_URL,"");*/
Context context = new InitialContext();
System.out.println(ds);
ds = (DataSource) context.lookup("java:/comp/env/jdbc/ccitDS");
System.out.println(ds);
} catch (NamingException e) {
e.printStackTrace();
}
}
/**
* 数据库更新 增、删、改
* @param sql sql语句
* @param pamas String[] 参数
* @return boolean 操作成功返回 true,失败返回 false
*/
public boolean update(String sql, String[] pamas) {
QueryRunner qr = new QueryRunner(ds);
int result = 0;
try {
result = qr.update(sql, pamas);
} catch (SQLException e) {
e.printStackTrace();
}
return result != 0;
}
/**
* 数据库查询
* @param sql String sql语句
* @param pama String[] 参数
* @param rsh ResultSetHandler 结果集
* @return Object 查到的结果
*/
public Object query(String sql, String[] pama, ResultSetHandler rsh) {
QueryRunner qr = new QueryRunner(ds);
Object result = null;
try {
result = qr.query(sql, pama, rsh);
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
public static void main(String[] args) {
System.out.println(new DBUtils());
}
}
下面是数据源配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
auth="Container"
name="jdbc/xyy_ccitDS"
type="javax.sql.DataSource"
password="ccitora"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxIdle="10"
maxWait="10000"
removeAbandoned="true"
logAbandoned="true"
username="ccitora"
url="jdbc:oracle:thin:@192.168.10.10:1521:oratest"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
maxActive="30"
removeAbandonedTimeOut="1800000"/>
</Context>
注: 相应的驱动jar包我也放到tmocat的common\lib下了
高手们快来帮忙啊!!
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 com.ccit.xyy.util.DBUtils.init(DBUtils.java:34)
at com.ccit.xyy.util.DBUtils.<init>(DBUtils.java:21)
at com.ccit.xyy.util.DBUtils.main(DBUtils.java:77)
com.ccit.xyy.util.DBUtils@61de33
package com.ccit.xyy.util;
import java.sql.SQLException;
import javax.naming.*;
import javax.sql.*;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
/**
* @author XYY
* @创建时间 2010年02月20日21点05分
* @version 1.1
* @描述 连接数据库,使用数据源
* @类名 DBUtils
*/
public class DBUtils {
private DataSource ds = null;
public DBUtils() {
init();
}
/**
* 初始化一个数据源
*/
private void init() {
try {
/*Hashtable env=new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"");
env.put(Context.PROVIDER_URL,"");*/
Context context = new InitialContext();
System.out.println(ds);
ds = (DataSource) context.lookup("java:/comp/env/jdbc/ccitDS");
System.out.println(ds);
} catch (NamingException e) {
e.printStackTrace();
}
}
/**
* 数据库更新 增、删、改
* @param sql sql语句
* @param pamas String[] 参数
* @return boolean 操作成功返回 true,失败返回 false
*/
public boolean update(String sql, String[] pamas) {
QueryRunner qr = new QueryRunner(ds);
int result = 0;
try {
result = qr.update(sql, pamas);
} catch (SQLException e) {
e.printStackTrace();
}
return result != 0;
}
/**
* 数据库查询
* @param sql String sql语句
* @param pama String[] 参数
* @param rsh ResultSetHandler 结果集
* @return Object 查到的结果
*/
public Object query(String sql, String[] pama, ResultSetHandler rsh) {
QueryRunner qr = new QueryRunner(ds);
Object result = null;
try {
result = qr.query(sql, pama, rsh);
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
public static void main(String[] args) {
System.out.println(new DBUtils());
}
}
下面是数据源配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
auth="Container"
name="jdbc/xyy_ccitDS"
type="javax.sql.DataSource"
password="ccitora"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxIdle="10"
maxWait="10000"
removeAbandoned="true"
logAbandoned="true"
username="ccitora"
url="jdbc:oracle:thin:@192.168.10.10:1521:oratest"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
maxActive="30"
removeAbandonedTimeOut="1800000"/>
</Context>
注: 相应的驱动jar包我也放到tmocat的common\lib下了
高手们快来帮忙啊!!
...全文
相关推荐
SpringMVC+JNDI+Tomcat配置数据源
在本文档中,我们将详细探讨如何在Tomcat环境下使用SpringMVC与JNDI配置数据源。#### 二、Tomcat配置JNDI的三种方式##### 1.
tomcat5中配置mysql数据源
### Tomcat5中配置MySQL数据源的详细步骤与解析#### 一、配置环境变量在开始配置Tomcat5中的MySQL数据源之前,首先需要确保系统环境已经正确配置了必要的环境变量。
tomcat 5.5数据源配置
通过以上配置,Tomcat 5.5已经成功设置了数据源,应用可以通过JNDI查找并使用这个数据源来建立与数据库的连接。
怎样在tomcat5中配置mysql数据源
在Tomcat5中配置MySQL数据源是Web应用与数据库交互的关键步骤,这使得应用程序能够连接并操作MySQL数据库。以下是一个详细的配置指南:首先,确保安装了正确的软件版本。
Tomcat JNDI数据源配置详解与最佳实践
JNDI(Java命名和目录接口)是Java EE中用于集中管理资源的重要技术,其核心原理是通过命名服务实现资源与物理位置的解耦。在数据库连接场景中,JNDI数据源通过连接池技术显著提升性能,同时实现配置与代码分离。典型应用包括Web应用的数据库连接管理,支持多应用共享配置和热更新能力。本文以Tomcat容器为例,深入解析server.xml全局配置、context.xml应用级配置等不同实现方案,涵盖连接池参数调优、多数据源管理等工程实践。针对微服务架构和云原生环境,特别提供了动态配置注入和健康检查等进阶


Web 开发
