1

我试图弄清楚如何为我的网络服务使用数据源。我在我的 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>
...

但是,它没有说明这个文件在哪里以及还需要什么。我不知道我是否确实需要资源参考。谁能指出我在部署后如何从代码访问数据源的更完整信息的方向?我正在努力做到这一点,以便为我的网络服务汇集连接。

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 回答