例外:需要在环境或系统属性中指定类名:java.naming.factory.initial

时间:2010-01-04 08:14:49

标签: jms

当我运行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);

3 个答案:

答案 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解释。