请教。在ejb中用DataSource连接数据库,报错!

04-10-22 maple_0702
我在ejb中用直连方式没有问题。

用DataSource就不行,我的code:

public Connection getConnection(){

Connection con = null;

DataSource ds = null;

try{

InitialContext ctx = new InitialContext();

System.out.println("ccccccccccccccccc");

ds = (DataSource)ctx.lookup("java:comp/env/estore");

System.out.println("dddddddddddddddd");

con = ds.getConnection();

System.out.println("eeeeeeeeeeeeeeeeeeeee");

}

catch(Exception e){

e.printStackTrace();

}

return con;

}

执行不到System.out.println("eeeeeeeeeeeeeeeeeeeee");

抛出的异常:

java.lang.NoClassDefFoundError: weblogic/jdbc/wrapper/PoolConnection

java.sql.SQLException: Cannot obtain connection: driverURL = jdbc:weblogic:pool:estoreConn

ectionPool, props = {enableTwoPhaseCommit=false, jdbcTxDataSource=true, connectionPoolID=e

storeConnectionPool, dataSourceName=estoreDataSource}.

banq
2004-10-25 13:49
需要配置Datasource

maple_0702
2004-10-26 10:24
连接池和数据源配置没有问题

连接池配置:

Name: estoreConnectionPool

URL:jdbc:mysql://localhost:3306/estore

Driver Classname:com.mysql.jdbc.Driver

Properties:user=root

数据源配置:

JNDI:estore

选择的连接池:estoreConnectionPool

我也修改过启动脚本,把mysql的jdbc驱动加入classpath路径中;

而且在weblogic我建的域选择的是“D:\jdk1.4”

我把jdbc驱动放到了D:\jdk1.4\jre\lib\ext下

banq
2004-10-31 20:13
换JBoss试验看看,注意DataSource的JNDI名称特殊写法

newold
2004-10-31 22:39
mysql的驱动weblogic没有找到,需要在startweblogic.bat的classpath加入

maple_0702
2004-11-05 16:23
问题已解决!

这是我找到的解决办法。

其实非常简单

例如D:\mysql-connector.jar //jdbc驱动所在的目录

然后把这个路径加到startWebLogic.cmd的“set CLASSPATH=......"中就可以了。

但需要注意的是,一定要把mysql-connector.jar文件从系统的"环境变量"中的去掉,还有%JAVA_HOME%\jre\lib\ext也是。反正除了在startWebLogic.cmd中需要设置其它地方都不需要。

这是我找到的帖子,里面说的更详细。

http://forums.bea.com/bea/message.jspa?messageID=200019677

maple_0702
2004-11-05 16:26
其实我的错误一直就在把jdbc驱动放到了%JAVA_HOME%\jre\lib\ext中

猜你喜欢