web-dev-qa-db-ja.com

例外:環境またはシステムプロパティでクラス名を指定する必要があります:Java.naming.factory.initial

JMS関連のアプリケーションを実行すると、次の例外エラーが発生します。

javax.naming.NoInitialContextException:環境またはシステムプロパティで、またはアプレットパラメータとして、またはアプリケーションリソースファイルでクラス名を指定する必要があります:Java.naming.factory.initial

Sun Application Server9.1を使用しています

何が欠けているのか分かりますか?

私はすでに以下を追加しようとしましたが、結果は同じです

    Properties env = new Properties();
    env.put("Java.naming.factory.initial","com.Sun.jndi.cosnaming.CNCtxFactory");

    Context ctx = new InitialContext(env);
9
DanDan

非常に一般的なエラーは、jboss-client.jarを追加していないことです。または、weblogicを使用している場合は代替jar。

7

Spring&weblogicで作業しているときに、同じ問題に直面していました。 2つのプロパティを設定して解決しました

System.getProperties()。put( "Java.naming.factory.initial"、 "weblogic.jndi.WLInitialContextFactory"); System.getProperties()。put( "Java.naming.provider.url"、 "t3:// localhost:80")

3
Saurabh

私の環境では、Context.INITIAL_CONTEXT_FACTORYを設定するだけでは不十分でした。 http://docs.Oracle.com/javase/6/docs/api/javax/naming/Context.html#URL_PKG_PREFIXES で説明されているContext.URL_PKG_PREFIXESも設定する必要がありました。

0
Michael