毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> java技术 >> 正文

Need to specify class name in environment or system property

更新时间:2013-1-16:  来源:毕业论文

 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
tomcat下context.xml中的配置如下:

Java code?1234 <Resource name="jdbc/oraldb" auth="Container" type="javax.sql.DataSource" axActive="100" maxIdle="30" maxWait="10000" username="scott" password="tiger"riverClassName="oracle.jdbc.driver.OracleDriver"url="jdbc:oracle:thin:@localhost:1521:orcl"/>

web.xml中配置如下:

Java code?123456 <resource-ref>        <res-ref-name>jdbc/oraldb</res-ref-name>        <res-type>javax.sql.DataSource</res-type>        <res-auth>Container</res-auth>    </resource-ref>

获得数据库连接的代码如下:

Java code?123456789101112 public Connection getConnection(){     try{            Context cxt=new InitialContext();         DataSource ds=(DataSource)cxt.lookup("java:comp/env/jdbc/oraldb");         conn=ds.getConnection();     } catch (SQLException e) {         e.printStackTrace();     } catch (NamingException e) {         e.printStackTrace();     }     return conn; }

测试代码如下:

Java code?12 Connection conn=DBHelper.getInstance().getConnection(); System.out.println(conn);

错误信息: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;
问题不用细说了吧,求助!

没有初始化上下文错误:需要指明ClassName
不知道是不是你少打了一个字母 dirverClassName少了一个d

这种方式必须要tomcat启动的情况下才能得到Connection,
另外它有三个缺点:
1,不能直接在main方法中运行,也就不能测试,很不方便!
2,不能正常读写Oracle的clob字段,会导致很多功能做不了!
3,效率不及dbcp或c3p0,其实后两者也都实现了javax.sql.DataSource接口,可以算是它的扩展版,可以在本工程中配置,可以在main方法中运行

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。