に埋め込まれたJBossとのJNDIの設定:ヘルプ私は自分のコードに次の検索をしようとするとTomcatの5.5.x
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
return (DataSource) envCtx.lookup("jdbc/mydb");
私は、次の例外を取得:
java.sql.SQLException: QueryResults: Unable to initialize naming context:
Name java:comp is not bound in this Context at
com.onsitemanager.database.ThreadLocalConnection.getConnection
(ThreadLocalConnection.java:130) at
...
私は、次の組み込みのJBossをインストールJBoss wiki instructions。さらに、configuration wiki pageに指定されているように、「デフォルトですべてのWARをスキャンする」展開を使用してTomcatを設定しました。接続プール、EJB、JPAのような
組み込みのJBossコンポーネントは
JNDI、およびトランザクションは、サービスを公開するJNDIの 広範囲に使用します
configページを引用します。埋め込みJBossは、TomcatのJNDIインスタンスの上にレイヤーを重ねることで、TomcatのJNDI 実装をオーバーライドします。少数>の理由はこのためにあります。
を調べることができ、他のサービスをリモーティングのあなたのためのオプションを提供したい
- は、Javaのseemeless統合を可能にするためにserver.xmlの
- 内でこれらのサービスの一つ一つを宣言することを回避するには、次のWebアプリケーションと EJB間のコンプの名前空間。
- TomcatのJNDIの実装はそれにいくつかの重大なバグを持っている私たちは、EJBと>リモートで
を動作するようにいくつかのJBoss コンポーネントの能力を妨げます
私はJBossのネーミングサービスをどのように設定することができますか?上記の引用によると、TomcatのJNDI実装を無効にしてjava:comp/envの検索を行うことができますか? FYI
- 私の環境のJBoss(ベータ3)組み込みのTomcat 5.5.9、シーム2.0.2sp、
注:私は私のデータベース接続のための-ds.xmlファイル適切に設定し、上でアクセスを持っています命令ごとのクラスパス。
注:埋め込まれたJbossフォーラムとシームユーザーフォーラムにこの質問を掲載しました。
の作品を願っていましたか? 私もこの問題を抱えています。アプリケーションはネイティブのTomcatで正常に動作しますが、データソースは期待どおりに動作しますが、JBossが組み込まれている場合、「Name java:compはこのコンテキストにバインドされていません」というエラーが発生します。 –