当我运行JMS相关的应用程序时,我遇到以下异常错误。
javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或在applet参数中或在应用程序资源文件中指定类名:java.naming.factory.initial
我们正在使用Sun Application Server 9.1
知道我们缺少什么吗?
我已经尝试添加以下内容但结果仍然相同
Properties env = new Properties();
env.put("java.naming.factory.initial","com.sun.jndi.cosnaming.CNCtxFactory");
Context ctx = new InitialContext(env);
答案 0 :(得分:7)
一个非常常见的错误可能是您没有添加jboss-client.jar! 如果使用weblogic,则使用替代jar。
答案 1 :(得分:3)
在使用spring& amp;时,我遇到了同样的问题。 weblogic。我通过设置两个属性来解决它
。System.getProperties()把( “java.naming.factory.initial的”, “weblogic.jndi.WLInitialContextFactory”); System.getProperties()。put(“java.naming.provider.url”,“t3:// localhost:80”)
答案 2 :(得分:0)
在我的环境中,设置Context.INITIAL_CONTEXT_FACTORY
是不够的。我还必须设置Context.URL_PKG_PREFIXES,在http://docs.oracle.com/javase/6/docs/api/javax/naming/Context.html#URL_PKG_PREFIXES解释。