Как сопоставить источник данных для веб-службы Java

Я пытаюсь понять, как использовать источники данных для моего веб-сервиса. У меня есть файл 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>
...

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


person ravun    schedule 16.07.2009    source источник
comment
Поиск JNDI - это путь. Можете ли вы подтвердить в своих журналах запуска, что источник данных действительно развертывается?   -  person Yishai    schedule 16.07.2009
comment
Я получаю следующее при запуске сервера, я просто не смог сослаться на него =====> 11:33:55,364 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=WeatherDS' для Имя JNDI 'java:WeatherDS' Я попытался добавить ‹jndi-name› в файл jboss-web.xml, но я все еще не могу найти источник данных.   -  person ravun    schedule 16.07.2009


Ответы (1)


В 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.

person uı6ʎɹnɯ ꞁəıuɐp    schedule 12.08.2009