WebSphere のJNDIの設定方法(特にデータソース) †Java上のコーディング †(DataSource) ctx.lookup("java:comp/env/jdbc/DataSourceUserProfile"); のようにして、"java:comp/env/" をつけるようにしてください。*1 これを (DataSource) ctx.lookup("jdbc/DataSourceUserProfile"); と書くと、サーバのデータソース名を直接指定したことになる(??) 実際、java:comp/env をつけた場合は、下記のバインディングという作業をしないとエラーが発生したのに対し、つけない場合はエラーが発生しなかった。 ejb-jar.xml or web.xml に追加 †コード中で上のようにルックアップしているものをすべて、列挙する必要があります。 <resource-ref> <description>DataSourceUserProfile</description> <res-ref-name>jdbc/DataSourceUserProfile</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> WSADならGUIでもできます。 web.xml >> 参照 >> リソース を編集してください。 ここまでは、すべて、J2EE標準のやりかたです。 バインディング †上記のローカルルックアップしている名前(jdbc/DataSourceUserProfile?)を実際のDatasourceのJNDI名と対応させなければいけません。 これをしないと、 [03/05/19 21:04:34:027 JST] 1d728bcb Helpers W NMSV0605W: コンテキスト "java:" から 名前 "comp/env/jdbc/DataSourceUserProfile" でルックアップされた参照オブジェクトが JNDI Naming Manager に送信され、例外が発生しました。 参照データは次のとおりです: 参照ファクトリー・クラス名: com.ibm.ws.util.ResRefJndiLookupObjectFactory 参照ファクトリー・クラスの場所の URL: <null> Reference Class Name: java.lang.Object Type: ResRefJndiLookupInfo Content: com.ibm.ws.util.ResRefJndiLookupInfo@38e08bcb ResRefJndiLookupInfo: Look up Name="jdbc/DataSourceUserProfile";JndiLookupInfo: jndiName=""; providerURL=""; initialContextFactory="" という例外が発生しました。 このbindingの方法は、J2EEのSpec外ですので、各ApplicationServer?によって異なります。 WebSphereなら、このbinding情報は,WebApplication?の場合は WEB-INF/ibm-web-bnd.xmi に保存されます。普通はAATなり、WSADなり、または、deploy時にbinding情報をいろいろ聞かれるのでその情報を元に自動的につくられます。 WSADをつかっているのなら、web.xml のエディタ上でもつくれます。 web.xml >> 参照 >> リソース >> WebSphere バインディング の個所を編集すると、WEB-INF/ibm-web-bnd.xmiがつくられます。 http://neverbird.sourceforge.jp/manual/fancy/ch07s02.html に参考になる情報があります。 http://neverbird.sourceforge.jp/manual/fancy/ch07s22.html
によると、ローカルルックアップの意図は、 メモ。 †PostgreSQLでエラーにならなかった設定。
起動するといろいろエラーが。。 †
この記事は 現在のアクセス:49618 |