如何映射java Web服务的数据源

时间:2009-07-16 16:01:33

标签: java jboss datasource jndi

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

1 个答案:

答案 0 :(得分:0)

在JBoss-4.2.3中,您可以在文件夹 [JBOSS_HOME] / server / [MYSERVER] / deploy /

中的XML文件中定义数据源

在此文件夹中创建一个名称为 mydatasource-ds.xml 的文件。

XML-File内容:

<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-Name是 java:/ mydatasource