本站首页    管理页面    写新日志    退出


«January 2026»
123
45678910
11121314151617
18192021222324
25262728293031


公告

 

 好好学习        天天向上


我的分类(专题)

日志更新

最新评论

留言板

链接


Blog信息
blog名称:小鱼的空间
日志总数:18
评论数量:20
留言数量:0
访问次数:85015
建立时间:2006年7月6日




jndi中的奇怪问题
软件技术

taotao6086 发表于 2007/10/25 11:01:13

最近几天一直在弄jndi.但是发现一个奇怪的问题.就是在配置完jndi数据源后.在用lookup查找的时候经常出现下面的错误: 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(Unknown Source) at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source) at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source) at javax.naming.InitialContext.lookup(Unknown Source)   错误指向的行就是在用lookup查找数据源的时候. 但是在jsp页面中调用就没有这样的问题.在java类中些就发生问题.很是奇怪... 我用的环境是  eclipse3.1+jkd1.4+jboss4.0.4 数据源代码如下(jboss_home\erver\all\deploy\mysql-ds.xml): <?xml version="1.0" encoding="UTF-8"?> <!-- $Id: mysql-ds.xml,v 1.3.2.3 2006/02/07 14:23:00 acoliver Exp $ --><!--  Datasource config for MySQL using 3.0.9 available from:http://www.mysql.com/downloads/api-jdbc-stable.html--> <datasources>  <local-tx-datasource>    <jndi-name>MySqlDS</jndi-name>    <connection-url>jdbc:mysql://127.0.0.1:3306/test</connection-url>    <driver-class>com.mysql.jdbc.Driver</driver-class>    <user-name>root</user-name>    <password>1234</password>    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>    <!-- should only be used on drivers after 3.22.1 with "ping" support    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>    -->    <!-- sql to call when connection is created    <new-connection-sql>some arbitrary sql</new-connection-sql>      -->    <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers    <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>      -->     <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->    <metadata>       <type-mapping>mySQL</type-mapping>    </metadata>  </local-tx-datasource></datasources> 调用的代码如下: DataSource   ds   =   null;       try{       InitialContext   ctx   =   new   InitialContext();       ds   =   (DataSource)ctx.lookup("java:/MySqlDS");       Connection   conn   =   ds.getConnection();       String   sql   =   "select   *   from   courses";       Statement   ps   =   conn.createStatement();       ResultSet   rs   =   ps.executeQuery(sql);       while(rs.next()){       System. out.println(rs.getString("name"));       }       rs.close();       ps.close();       conn.close();       }catch(Exception   e){       System.out.println("This   is   Error   for   DataSource");       e.printStackTrace();       }  


阅读全文(1380) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.016 second(s), page refreshed 144810737 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号