関連アプリケーションのスイートを WebLogic から JBoss EAP v6.2 に移植しています。
JBoss コマンド ライン インターフェイスを使用してデータ ソース接続をセットアップし、それを Oracle データベースにフックしました。このデータベースの名前は「mydatasource」で、JBoss 標準に従って JNDI 名は「java:jboss/datasources/mydatasource」です。このデータベース接続をテストして検証できます。
ただし、コードを移植して実行しようとすると、接続が機能しません。WebLogic で機能するコードは次のとおりです。
InitialContext ic = new InitialContext() ;
DataSource ds = (DataSource)ic.lookup(dataSource) ;
「mydatasource」の dataSource の値を使用します。
これは Web Logic では機能しましたが、JBoss では NameNotFoundException をスローします。
javax.naming.NameNotFoundException: mydatasource-- service jboss.naming.context.java.mydatasource
2 つのサーバー間で InitialContext の設定方法に違いがあることは明らかです。
しかし、このポートには多数の小さなアプリケーションが含まれており、そのすべてが上記のようなコードを介してデータソースに接続しています。そのコードをすべて書き直したくありません。
上記のようなコードが書き換えなしで機能するように初期コンテキストを定義する構成 (InitialContextFactory など) を使用する方法はありますか、または、上記のようなコードが機能することを可能にする、JBoss が受け入れるデータソースに名前を付ける別の方法がありますか?書き直さずに?
それとも、このコードを書き直す必要があることを我慢して受け入れる必要がありますか?
更新: はい、「java:jboss/datasources/mydatasource」を InitialContext ルックアップに渡すだけで問題が解決することはわかっていますが、そのような解決策がある場合は、コーディングではなく、構成による解決策を探しています。