今天,学习用了一下nutz框架,写了一个HelloWorld的小程序,在用jndi配置数据源时,写了一个测试类,并在main方法中调用了jndi获得数据库连接,但是报错了,错误信息如下:

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。

这是什么问题呢,大体好像说是上下文初化异常!我看了一下我的配置

步骤:   
1. 在tomcat目录下conf/context.xml文件中 加入一下代码 
      <Resource name="jdbc/test" 
      auth="Container" 
      type="javax.sql.DataSource" 
      driverClassName="net.sourceforge.jtds.jdbc.Driver" 
      url="jdbc:sqlserver://localhost:1433;databaseName=nutztest" 
      username="sa" 
      password="sa" 
      maxActive="100"   //连接池的最大数据库连接数,设为0表示无限制 
      maxIdle="30"      //最大空闲数,设为0表示无限制 
      maxWait="10000"/> //最大连接等待时间.如果超时将接到异常.设为  -1 表示无限制

2.将jtds-1.2.5jar包,nutz.jar放到了工程中

3.  写测试类

public class Test{

public Connection getConnection(){ 
try { 
Context ctx = new InitialContext(); 
DataSource ds = (DataSource)ctx.lookup("jdbc/test"); 
conn = ds.getConnection(); 
} catch (NamingException e) { 
e.printStackTrace(); 
} catch (SQLException e) { 
e.printStackTrace(); 

return conn; 
}

public static void main(String[] args) { 
System.out.println(newTest().getConnection());

}

}

4.运行tomcat-- 运行测试代码,抛出异常: 
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:288) 
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325) 
at javax.naming.InitialContext.lookup(InitialContext.java:392)

后来看到论坛里的回复才知道原因

在用JNDI连接数据库时用main函数测试时总报错,
InitialContext 是要在应用服务器的上下文里才有的。
你在普通的应用程序里怎么行!
放到tomcat里面运行看看吧!
不能用main函数直接测试,只能放到tomcat或者servlet、jsp显示

javax.naming.NoInitialContextException错误的解决方案的更多相关文章

  1. Hibernate出现javax.naming.NoInitialContextException 错误的解决办法

    异常信息: 08:02:56,329 WARN SessionFactoryObjectFactory:123 - Could not unbind factory from JNDI javax.n ...

  2. javax.naming.NoInitialContextException: Need to specify class name in environment or system property

    javax.naming.NoInitialContextException: Need to specify class name in environment or system property ...

  3. 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

    小弟初次用JNDI,使用数据源连接数据库,配置完相关的xml文件后,激动的我赶紧测试了一下,结果悲剧了,报出了错误: javax.naming.NoInitialContextException:Ne ...

  4. 配置jndi服务,javax.naming.NamingException的四种情况

    1.当jndi服务没有启动,或者jndi服务的属性没有设置正确,抛出如下异常: javax.naming.CommunicationException: Can't find SerialContex ...

  5. spring mvc 500错误Allocate exception for servlet AppService javax.naming.NamingException: Cannot create resource instance 竟是@Resource的原因

    头几天已经测试的完毕了,换了个目录出现这个问题 严重: Allocate exception for servlet AppService javax.naming.NamingException: ...

  6. javax.naming.NameNotFoundException:Name[ XXX] is not bound in this context.

    在用局部数据源去连数据库的时候,在本地的项目中,都是可以的,可是一部署到服务器上,就报错了. 报的错误是:javax.naming.NameNotFoundException:Name[ XXX] i ...

  7. 菜鸟调错(二)——EJB3.0部署消息驱动Bean抛javax.naming.NameNotFoundException异常

    在部署EJB的消息驱动Bean时遇到了如下的错误: ERROR [org.jboss.resource.adapter.jms.inflow.JmsActivation] (WorkManager(2 ...

  8. javax.naming.NameNotFoundException

    2015-08-27 09:53:16,463 [localhost-startStop-1] DEBUG [org.springframework.jndi.JndiTemplate] - Look ...

  9. Ibatis XML 配置文件注释引起错误及解决方案

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp35 Ibatis XML 配置文件注释引起错误及解决方案 最近在使用Iba ...

随机推荐

  1. Cocos2d-x动画工具类

    1.此工具类的目的是为了方便运行动画.使用TexturePackerGUI工具能够导出plist文件和png图片,这里我演示样例图片叫bxjg.plist和bxjg.png ///////////// ...

  2. C# FUNC 应用

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Func ...

  3. UIActivityIndicatorView的详细使用

    转自:http://www.cnblogs.com/top5/archive/2012/05/17/2506623.html UIActivityIndicatorView实例提供轻型视图,这些视图显 ...

  4. Linux虚拟内存系统常用参数说明

    1.admin_reserve_kbytes    给有cap_sys_admin权限的用户保留的内存数量,默认值是min(free pages * 3%, 8MB).这些内存是为了给管理员登录和杀死 ...

  5. Memory Analyzer tool(MAT)分析内存泄漏---理解Retained Heap、Shallow Heap、GC Root

    Shallow Heap Size 指对象自身所占用的内存大小,不包含其引用的对象所占的内存大小. 1.数组类型 数组元素对象所占内存的大小总和. 2.非数组类型 对象与它所有的成员变量大小的总和.当 ...

  6. 使用自定义的按钮替换默认的<input type='file'>

    可以通过让默认的input type = 'file'按钮透明度变为0,并且让它刚好覆盖在自定义的按钮上,来实现此效果: 将它写成一个jQuery插件: (function($){ $.fn.brow ...

  7. 使用vuex保存singer每个歌星的基本信息

    1.建src/store文件夹,建立以下文件来存储歌星信息 2.state.js const state = { singer:{} } export default state 2.mutation ...

  8. USB设备驱动程序学习笔记(一)

    现象:把USB设备接到PC1. 右下角弹出"发现android phone"2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有"驱动程序",为何能知道 ...

  9. js中引号("")中间设置变量

  10. DMA2D 图形加速器简介

    在实际使用 LTDC 控制器控制液晶屏时,使 LTDC 正常工作后,往配置好的显存地址写入要显示的像素数据, LTDC 就会把这些数据从显存搬运到液晶面板进行显示,而显示数据的容量非常大,所以我们希望 ...