問題タブ [initial-context]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
524 参照

java - InitialContext を閉じる

EJBHelperメソッドを呼び出してgetInitialContextを初期化する別のクラスのメソッドを使用するクラスがありますInitialContext

ここでの問題はInitialContext、EJB プロセスの終了後に を閉じる必要があることです。助けてください; これどうやってするの?

0 投票する
1 に答える
12994 参照

java - Spring 用の JNDI DataSource をプログラムで作成する

JNDI を使用して定義されたデータソースを持つ既存の Spring Web ベースのアプリケーションがあり、Bean を使用するスタンドアロン アプリを作成しようとしています。スタンドアロン アプリケーションで JNDI エントリとデータベース プロパティをプログラムで作成するにはどうすればよいですか?

編集:

このようなことを試しましたが、「javax.naming.NoInitialContextException: 環境またはシステム プロパティでクラス名を指定する必要があります」というエラーが表示されます。

0 投票する
1 に答える
352 参照

ejb - InitialContext.lookup(ejbMappedName) は、新しいインスタンスまたは古い同じインスタンスを返します

statful EJB の場合、InitialContext.lookup(itsMappedName) を使用して参照を取得すると、(InitialContext.lookup(itsMappedName)) の呼び出しごとに、新しいステートフル EJB または同じステートフル EJB が返されますか?

0 投票する
0 に答える
347 参照

java - Storm jar内からjndiバインディングをロードする方法は?

Storm を使用するように移行するプロジェクトがあるため、コードを jar にパッケージ化する必要があります。以前は、システム構成ディレクトリ内のファイルからバインディングをロードする実装com.sun.jndi.fscontext.RefFSContextFactoryとして使用していました(正常に動作しました)。ただし、このファクトリを使用して jar 内からコンテキストをロードしようとすると、次のようになります。InitialContextFactoryjndicontextclasspath

これは、ファクトリが次の URL から jdni コンテキストをロードしようとしたためです。

"jar:file:/mount/storm-dir/data/storm.jar!/jndicontext"

これは有効な URL ですが、ファクトリは jar を開く方法を認識していません。その実装はありjavax.naming.spi.InitialContextFactoryますか?あるいは、この問題を回避して構成ディレクトリを Storm に追加する方法はありclasspathますか?

0 投票する
0 に答える
307 参照

java - MailResource をモジュール名と組み合わせてルックアップすると、Glassfish の無限ループが発生します。

Glassfish は、メール リソースをルックアップするときに無限ループに陥ります。このエラーは、ejb.jar.xml でカスタム <module-name> を定義する場合にのみ発生します。

例外:

javax.naming.InitialContext.lookup(InitialContext.java:392) com.sun.enterprise.naming.util.JndiNamingObjectFactory.create(JndiNamingObjectFactory.java:90) com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup (GlassfishNamingManagerImpl.java:776) com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:744) com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:180) com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:498) で com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) で javax.naming.InitialContext.lookup( com.sun.enterprise.naming.util.JndiNamingObjectFactory の javax.naming.InitialContext.lookup(InitialContext.java:392) の InitialContext.java:392)。create(JndiNamingObjectFactory.java:90) com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:776) com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:744) com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:180) で com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:498) で com.sun.enterprise.naming で.impl.SerialContext.lookup(SerialContext.java:455) at javax.naming.InitialContext.lookup(InitialContext.java:392) at javax.naming.InitialContext.lookup(InitialContext.java:392) com.sun.enterprise. Naming.util.JndiNamingObjectFactory.create(JndiNamingObjectFactory.java:90)776) com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:744) com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:180) com.sun.enterprise .naming.impl.SerialContext.lookup(SerialContext.java:498) at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) at javax.naming.InitialContext.lookup(InitialContext.java:392) ) javax.naming.InitialContext.lookup(InitialContext.java:392) で com.sun.enterprise.naming.util.JndiNamingObjectFactory.create(JndiNamingObjectFactory.java:90) で776) com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:744) com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:180) com.sun.enterprise .naming.impl.SerialContext.lookup(SerialContext.java:498) at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) at javax.naming.InitialContext.lookup(InitialContext.java:392) ) javax.naming.InitialContext.lookup(InitialContext.java:392) で com.sun.enterprise.naming.util.JndiNamingObjectFactory.create(JndiNamingObjectFactory.java:90) でcom.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) の lookup(SerialContext.java:498) javax.naming.InitialContext.lookup(InitialContext.java:392) の javax.naming.InitialContext com.sun.enterprise.naming.util.JndiNamingObjectFactory.create(JndiNamingObjectFactory.java:90) の .lookup(InitialContext.java:392)com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) の lookup(SerialContext.java:498) javax.naming.InitialContext.lookup(InitialContext.java:392) の javax.naming.InitialContext com.sun.enterprise.naming.util.JndiNamingObjectFactory.create(JndiNamingObjectFactory.java:90) の .lookup(InitialContext.java:392)

これが私の構成です:

glassfish-resources.xml

EMailService.java へのインジェクション

ejb.jar.xml

もちろん、上記のファイルはすべて同じモジュールに存在します => バックエンド。

JNDI-Internals の詳細なログを使用して、問題を次のポイントまで掘り下げることができました。

動作シナリオ (モジュール名なし): 特別なモジュール名がない場合、モジュール名はファイル名にファイル拡張子が付いたものになります (例: backend-1.1.1-SNAPSHOT)。これにより、次のルックアップ シナリオが発生し、最終的に MailResource が再割り当てされます。

.SerialContext;MethodName=lookup;|SerialContext ==> lookup( java:module/mail/MailSession)|#] .SerialContext;MethodName=lookup;|SerialContext ==> 検索相対名: java:module/mail/MailSession|# ] .JavaURLContext;MethodName=lookup;|javaURLContext.lookup では、name = java:module/mail/MailSession serialcontext...null|#] .SerialContext;MethodName=lookup;|SerialContext ==> lookup( java:global/portal -1.1.1/backend-1.1.1-SNAPSHOT/mail/MailSession)|#] .SerialContext;MethodName=lookup;|SerialContext ==> 検索相対名: java:global/portal-1.1.1/backend-1.1. 1-SNAPSHOT/mail/MailSession|#] .SerialContextProviderImpl;MethodName=lookup;| SerialContextProviderImpl :: lookup java:global/portal-1.1.1/backend-1.1.1-SNAPSHOT/mail/MailSession|#] .GlassfishNamingManagerImpl;MethodName=lookup;|GlassfishNamingManager のシリアル コンテキスト..null|#] .

エラー シナリオ (カスタム モジュール名): 前述の ejb.jar.xml に示されているようなカスタム モジュール名を追加すると、ルックアップの無限ループで失敗します。

関連する検索ログは次のようになります。

MethodName=lookup;|SerialContext ==> 検索相対名: java:global/private-ear-1.2.0-SNAPSHOT/backend/mail/MailSession|#] FINE|glassfish3.1.1|com.sun.enterprise.naming|_ThreadID =23;_ThreadName=Thread-2;ClassName=com.sun.enterprise.naming.impl.SerialContextProviderImpl;MethodName=lookup;| SerialContextProviderImpl :: lookup java:global/private-ear-1.2.0-SNAPSHOT/backend/mail/MailSession|#] FINE|glassfish3.1.1|com.sun.enterprise.naming|_ThreadID=23;_ThreadName=Thread-2; ClassName=com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl;MethodName=lookup;|GlassfishNamingManager のシリアル コンテキスト..null|#] FINE|glassfish3.1.1|com.sun.enterprise.naming|_ThreadID=23;_ThreadName=Thread- 2;ClassName=com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl;MethodName=lookup;|GlassfishNamingManager : 検索名: java: MethodName=lookup;|SerialContext ==> lookup( java:global/private-ear-1.2.0-SNAPSHOT/backend/mail/MailSession)|#] FINE|glassfish3.1.1|com.sun.enterprise.naming|_ThreadID= 23;_ThreadName=Thread-2;ClassName=com.sun.enterprise.naming.impl.SerialContext;MethodName=lookup;|SerialContext ==> 検索相対名: java:global/private-ear-1.2.0-SNAPSHOT/backend /mail/MailSession|#] FINE|glassfish3.1.1|com.sun.enterprise.naming|_ThreadID=23;_ThreadName=Thread-2;ClassName=com.sun.enterprise.naming.impl.SerialContextProviderImpl;MethodName=lookup;| SerialContextProviderImpl :: lookup java:global/private-ear-1.2.0-SNAPSHOT/backend/mail/MailSession|#] FINE|glassfish3.1.1|com.sun.enterprise.naming|_ThreadID=23;_ThreadName=Thread-2; ClassName=com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl;MethodName=lookup;|GlassfishNamingManager のシリアルコンテキスト..

asadmin から Glassfish リソースを手動で確認すると、次のエントリが取得されます。

そこに専門家がいたら、そのヒントを教えてください。

0 投票する
2 に答える
1339 参照

java - Oracle 11g で context.lookup() を使用してキューを取得する方法

Oracle 11g で Queue と MessageDrivenBean を作成したいと考えています。
Weblogic で JMS モジュールを作成し、その中に Queue と ConnectionFactory を作成しました。JDBC 名は次のようになります:
Queue: jms/EvZahQueue
ConnectionFactory: jms/ConnectionFactory

私はそれらを取得しようとしました:

ただし、次のような例外があります。

また、私は試しました:

そして、デフォルトのプロパティを作成して入れようとしましたnew InitialContext()が、何も変わりませんでした。

私は何をすべきか?web.xml、 、ejb-jar.xmlweblogic-ejb-jar.xml何かを書く必要があるかもしれません。

0 投票する
1 に答える
1022 参照

java - 別のトピックと同じ名前を持つ InitialContext キューからルックアップできません

このコード行は例外を生成します

背景情報:

  • 別のキュー名で試してみましたが、問題なく動作します。

  • この「サンプル」キューの問題は、まったく同じ名前の別のトピックがあることです

これを回避する方法はありますか?