当前位置: 技术问答>java相关
javax.naming.NoInitialContextException求解
来源: 互联网 发布时间:2017-03-21
本文导语: NamingException: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 代码如下: Context ctx = new InitialContex...
NamingException: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
代码如下:
Context ctx = new InitialContext();
ds = (DataSource) ctx.lookup("LPSDB");
求解
代码如下:
Context ctx = new InitialContext();
ds = (DataSource) ctx.lookup("LPSDB");
求解
|
Context类是JNDI API的核心,使用JNDI时,通常要生成InitialContext对象:
Context ctx = new InitialContext();
InitialContext构造函数根据系统属性java.naming.factory.initial找到生成InitialContext的类名。有些EJB容器已经设置了这个属性,有时则需要自己提供这个值。
JDK1.3带有三个内置的服务提供者:RMI,CORBA和LDAP。它们的初始环境工厂类分别为:
com.sun.jndi.rmi.registry.RegistryContextFactory
com.sun.jndi.cosnaming.CNCtxFactory
com.sun.jndi.ldap.LdapCtxFactory
也可以在命令行用-D选项指定:
java -Djava.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory usingj2ee.naming.JNDIDemo
也可以在传入InitialContext构造函数的Hashtable中指定:
Hashtable props = new Hashtable();
props.put(Context.INITIAL_CONTEXT_FACOTRY, "com.sun.jndi.ldap.LdapCtxFactory");
Context ctx = new InitialContext(props);
Context ctx = new InitialContext();
InitialContext构造函数根据系统属性java.naming.factory.initial找到生成InitialContext的类名。有些EJB容器已经设置了这个属性,有时则需要自己提供这个值。
JDK1.3带有三个内置的服务提供者:RMI,CORBA和LDAP。它们的初始环境工厂类分别为:
com.sun.jndi.rmi.registry.RegistryContextFactory
com.sun.jndi.cosnaming.CNCtxFactory
com.sun.jndi.ldap.LdapCtxFactory
也可以在命令行用-D选项指定:
java -Djava.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory usingj2ee.naming.JNDIDemo
也可以在传入InitialContext构造函数的Hashtable中指定:
Hashtable props = new Hashtable();
props.put(Context.INITIAL_CONTEXT_FACOTRY, "com.sun.jndi.ldap.LdapCtxFactory");
Context ctx = new InitialContext(props);
|
·安装允许RMI操作的安全策略
举例:
//xxx.policy
grant{
permission java.security.AllPermission;
};
·运行服务器
举例:
java -Djava.security.policy=xxx.policy yourserver
举例:
//xxx.policy
grant{
permission java.security.AllPermission;
};
·运行服务器
举例:
java -Djava.security.policy=xxx.policy yourserver