2013-07-03 16 views
6

WebSphereで設定されているWebアプリケーションでJDBC Connetionを使用したいとします。 (このようにここに:How to use JDBC in JavaEE?WebSphere 8.5でJDBCデータソースを検索

私はこのデータソースをJPA経由で使用していましたが、私たちの顧客はネイティブSQLを持っていたいと思っています。

多くの例とチュートリアル(例:http://www.wickcentral.com/java/dl/ds_resreferencesetts_Websphere.pdfWebsphere JNDI lookup fails)が見つかりましたが、動作することは何もありません。

<resource-ref> 
    <res-ref-name>jdbc/myDS</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
    <res-sharing-scope>Shareable</res-sharing-scope> 
</resource-ref> 

そして私はでDataSourceを取得するためにしようと試みます。WebSphereで

DataSourceがJNDI名「JDBC/MYDS」

を持っている私は私のweb.xmlにリソース参照を追加しました私のダオ:

ds = (DataSource) new InitialContext() 
       .lookup("java:comp/env/jdbc/myDS"); 

しかし、私が得ること

com.ibm.wsspi.injectionengine.InjectionException: CWNEN0044E: A resource reference binding could not be found for the following resource references [jdbc/myDS], defined for the MyAPP component. 
です

私はたくさん試しました。誰かがその欠陥を見たか?

答えて

9

インストール時にWebアプリケーションで定義されたデータソースとWebsphereで定義されたデータソースを一致させましたか? Websphereは、通常、インストールプロセスで検出されたリソースをバインドするように要求します(正しく覚えていれば、「リソースへの参照リソースのマップ」という名前のステップにあります)。

その他の一般的な問題は、アプリケーションとは異なるコンテキスト(Cell/Node/Server)のWebsphereデータソースであるため、実行時に見つけることができません。

+4

は本当にありがとうございました。これが解決策でした。私が開発すると、Eclipseコネクタを介してアプリケーションをデプロイします。 「リソースへの参照リソースのマッピング」のようなステップはありません。 eclipseコネクターを介してデプロイする場合は、web-infフォルダーにibm-web-bnd.xmlという名前のファイルを作成する必要があります。 user2546624

+0

うれしいこと:P –

2

は、IBM-ウェブ-bnd.xmlに結合を追加する必要があります。

<resource-ref name="jdbc/myDS" binding-name="jdbc/myDS" />