- PR -

WebSphereからデータソースを取得できない件

1
投稿者投稿内容
shimizu
会議室デビュー日: 2007/03/15
投稿数: 2
投稿日時: 2007-03-15 16:16
javaの以下のコードで(1もしくは2)、JNDIを参照し、WebSphereからデータソースを取得したいのですが、以下にあるエラーとなってしまいます。
WebSphereの管理コンソールではテスト接続は成功しています。
初心者なので、とんでもない勘違いをしているかも知れませんが、ご教示ください。

気になる点としては、データソース定義の有効範囲はcells:RTP166Node01Cellになっているのですが、エラーのContextは
RTP166Node02Cell/nodes/RTP166Node02/servers/server1となっている点です。

-----開発環境---------------
WebSphere ver6.1
DB2 ver8.1
J2SE ver5.0
----------------------------

-----コード1---------------
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/myDataSource");←ここで落ちる
----------------------------

-----コード2---------------
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");
Context ctx = new InitialContext(p);
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/myDataSource");←ここで落ちる
----------------------------

-----web.xml---------------
<resource-ref id="ResourceRef_1173882831640">
 <res-ref-name>jdbc/myDataSource</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
 <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
---------------------------

-----エラー---------------
Caused by: javax.naming.NameNotFoundException: Context: RTP166Node02Cell/nodes/RTP166Node02/servers/server1, name: jdbc/myDataSource: First component in name myDataSource not found. [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
--------------------------

----データソース定義------
・有効範囲:cells:RTP166Node01Cell
・名前:myDataSource
・JNDI名:jdbc/myDataSource
--------------------------

以上、よろしくお願いします。
_________________
だっちょ
大ベテラン
会議室デビュー日: 2006/12/05
投稿数: 115
投稿日時: 2007-03-15 18:10
WebSphereは使ったことがないですが、GlassFishだとJNDI名がjdbc/__defaultの場合
(DataSource)initCtx.lookup("jdbc/__default");
で取得できてましたよ。
shimizu
会議室デビュー日: 2007/03/15
投稿数: 2
投稿日時: 2007-03-19 15:54
だっちょ様

遅くなり、申し訳ありません。ご返答、ありがとうございます。
ご指摘のとおり、変更を入れてみましたが、やはり同様のエラーとなってしまいます。

build時のメッセージを見ていると、やはりRTP166Node02Cellをコンテキストとしているように見えます。Websphereサーバ上はRTP166Node01Cellしか存在しないし、アプリの設定にもそのような文字列はないのですが…。
Santa
会議室デビュー日: 2003/05/28
投稿数: 8
投稿日時: 2007-03-23 17:28
デプロイ時にリソース参照名がリソースにバインドされてないとか!?
1

スキルアップ/キャリアアップ(JOB@IT)