Как делают меня поиск Источник данных JNDI снаружи веб-контейнера?

У меня есть продолжающий набор среды:

  • Java 1.5
  • Сервер приложений 8.2 Sun
  • Oracle 10 XE
  • Struts 2
  • Быть в спящем режиме

Мне интересно знать, как я могу написать код для клиента Java (т.е. за пределами веб-приложения), который может сослаться на источник данных JNDI, обеспеченный сервером приложений.

Порты для Сервера приложений Sun - все в своих значениях по умолчанию. Существует источник данных JNDI, названный jdbc/xxxx в конфигурации сервера, но я заметил, что Быть в спящем режиме конфигурация для веб-приложения использует имя java:comp/env/jdbc/xxxx вместо этого.

Большинство примеров, которые я видел до сих пор, включает код как

Context ctx = new InitialContext();
ctx.lookup("jdbc/xxxx");

Но кажется, что я или использую неправильное имя JNDI, или я должен настроить jndi.properties или другой конфигурационный файл для корректного указания слушателю? У меня есть appserv-rt.jar от Сервера приложений Sun, который имеет jndi.properties в нем, но это, кажется, не помогает.

Здесь существует подобный вопрос, но он не дает кода / относится к наличию iBatis, получают Источник данных JNDI автоматически: Доступ к Источнику данных снаружи веб-Контейнера (через JNDI)

19
задан Community 23 May 2017 в 11:55
поделиться

2 ответа

Вам нужен клиент приложения

В качестве альтернативы вы можете установить простое соединение JDBC из автономного клиента, которое может быть проще создать - но вам придется настроить детали подключения в клиенте, и вы не сможете повторно использовать настройки с вашего сервера приложений.

0
ответ дан 30 November 2019 в 04:48
поделиться

Если вы говорите о каком-то обычном Java-приложении, работающем каждый день вне контейнера, то вам не повезло. По сути, вам нужно будет настроить собственную реализацию JNDI с собственным пулом настраиваемых соединений и т. Д.

Однако вы можете писать «автономные» приложения Java EE. Это приложения, которые запускаются в клиенте приложения Java EE. По сути, это приложение, которое развертывается и упаковывается, но затем выполняется с помощью средства запуска, предоставляемого вашим контейнером Java EE.

При работе в среде клиента приложения все ресурсы сервера приложений (пулы соединений, EJB, очереди и т. Д.) Доступны вашему приложению точно так же, как если бы код был развернут на сервере приложений.

Здесь находится некоторая учебная документация для Sun App Server 8.2, который является контейнером J2EE 1.4.

Если возможно, я настоятельно рекомендую перейти на Glassfish v2.1, просто на более современный и лучший универсальный сервер, который должен без проблем развертывать ваши приложения, поскольку он является потомком версии 8.2.

1
ответ дан 30 November 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: