1

Web サービスでデータソースを使用する方法を理解しようとしています。jboss 4.2.3 サーバーに oracle-ds.xml をデプロイしましたが、データソースは JNDI 名 java:TestDS、java:WeatherDS などにバインドされているように表示されます。

initialcontext.lookup を実行しようとしましたが、見つかりません。web.xml でリソースを参照しようとしましたが、「java:WeatherDS には有効な JNDI バインディングがありません」というメッセージが表示されます...「java:/WeatherDS」、「WeatherDS」、「java:WeatherDS」、「jdbc」を参照しようとしました/WeatherDS" などがありますが、何らかの方法で参照名を jndi 名にマップする必要があると思います。

次のようなコード スニペットを見つけました。

...
<resource-ref>
    <res-ref-name>jdbc/DefaultDS</res-ref-name>
    <jndi-name>java:/DefaultDS</jndi-name>
</resource-ref>
...

ただし、このファイルがどこにあるのか、他に何が必要なのかはわかりません。確かにリソース参照が必要かどうかはわかりません。展開されたコードからデータソースにアクセスする方法について、より完全な情報を教えてくれる人はいますか? Web サービス用に接続がプールされるようにしようとしています。

4

1 に答える 1

0

JBoss-4.2.3 では、フォルダー[JBOSS_HOME]/server/[MYSERVER]/deploy/の XML ファイルでデータソースを定義します。

このフォルダーにmydatasource-ds.xmlという名前のファイルを作成します。

XML ファイルの内容:

<datasources>
  <local-tx-datasource>
    <jndi-name>mydatasource</jndi-name>
    <!-- Properties for SQLServer -->
    <connection-url>jdbc:jtds:sqlserver://hostname:1433/db-name;TDS=8.0;lastUpdateCount=true;sendStringParametersAsUnicode=false</connection-url>
    <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>
    <!-- Properties for SQLServer end -->
    <user-name>name</user-name>
    <password>pwd</password>
    <min-pool-size>5</min-pool-size>
    <max-pool-size>50</max-pool-size>
    <idle-timeout-minutes>15</idle-timeout-minutes>
    <blocking-timeout-millis>15000</blocking-timeout-millis>
  </local-tx-datasource>
</datasources>

通常の JNDI ルックアップによって、同じ JBoss にデプロイされたすべてのアプリケーションからこれらのデータソースにアクセスできます。

重要:コード内の jndi 名に接頭辞java:/を使用してください。上記のデータソースのアプリケーションでの完全な JNDI 名は、java:/mydatasource です。

于 2009-08-12T07:53:15.107 に答える