Как сопоставить источник данных для веб-службы Java - PullRequest
1 голос
/ 16 июля 2009

Я пытаюсь выяснить, как использовать источники данных для моего веб-сервиса. У меня развернут oracle-ds.xml на моем сервере jboss 4.2.3, и источники данных отображаются как связанные с именами 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>
...

Но здесь не сказано, где находится этот файл и что еще нужно. Я не знаю, нужна ли мне ссылка на ресурс наверняка или нет. Может кто-нибудь указать мне более подробную информацию о том, как получить доступ к источнику данных из кода после его развертывания? Я пытаюсь сделать так, чтобы соединения для моего веб-сервиса были объединены.

1 Ответ

0 голосов
/ 12 августа 2009

В JBoss-4.2.3 вы определяете источник данных в XML-файле в папке [JBOSS_HOME] / server / [MYSERVER] / deploy /

Создайте файл в этой папке с именем: 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>

Чтобы получить доступ к этим источникам данных из каждого приложения, развернутого в том же JBoss с помощью обычного поиска JNDI.

ВАЖНО: используйте префикс java: / в имени jndi в вашем коде. Полное JNDI-имя в вашем приложении для указанного выше источника данных: java: / mydatasource

...