Как настроить источник данных jboss 4.2.3 для библиотеки jar, которая инициализирует соединение в контексте по умолчанию?
У нас есть библиотека jar, которая управляет некоторой логикой соединения с БД и хранит данные в памяти. Что ж, это хорошо работает в tomcat, потому что мы можем сконфигурировать источник данных в $CATALINA_HOME/conf/context.xml, и все работает просто отлично.
Как я могу сконфигурировать источник данных в jboss (4.2.3.GA), который виден всем развернутым war, ear или приложениям, и, конечно, этот утилита jar, развернутый в $ JBOSS_HOME / server / < instance > / lib?
Спасибо:)
ОБНОВИТЬ:
Я специально хочу сделать:
"2a. Конфигурация общего ресурса
Используйте эту опцию, если вы хотите определить источник данных, который используется несколькими веб-приложениями JBoss, или если вы просто предпочитаете указывать свой источник данных в этом файле.
Этот автор не имел успеха здесь, хотя другие сообщили об этом. Разъяснение будет оценено здесь.
<Resource name="jdbc/postgres" auth="Container"
type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://127.0.0.1:5432/mydb"
username="myuser" password="mypasswd" maxActive="20" maxIdle="10" maxWait="-1"/>
источник: https://docs.jboss.org/jbossweb/2.1.x/jndi-datasource-examples-howto.html
Ну, я нахожусь в части " Разъяснение будет оценено здесь "...
2 ответа
Хорошо, это заняло у меня около недели исследований:
Создайте файл *-ds.xml.
В определении источника данных добавьте следующий тег:
< use-java-context> false< / use-java-context>
Затем в Java-коде мы можем назвать это так:
Properties env = new Properties(); env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); env.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); env.setProperty(Context.PROVIDER_URL, "localhost:1100"); initialContext = new InitialContext(env); DataSource datasource = (DataSource) initialContext.lookup("myCustomDs");
Создать источник данных JBoss
Добавьте конфигурацию источника данных (*-ds.xml) в ваш каталог $ JBOSS_HOME / sever /< server-name> / deploy.
Этот ответ Stackru содержит более подробную информацию: Как создать источник данных на сервере приложений JBoss
Ссылка для JBoss 5, но я не думаю, что конфигурация источника данных сильно изменилась между 4.2.3 и 5.
Настройте ресурсный справочник Tomcat
Сконфигурируйте ссылку на ресурс Tomcat, чтобы он указывал на источник данных JBoss. Эта конфигурация идентифицирует источник данных по имени JNDI, чтобы извлечь соединения из источника данных JBoss.
Шаг 1 принятого ответа на этот вопрос Stackru содержит более подробную информацию: путь JNDI Tomcat vs. Jboss
Обратите внимание, что ваша конфигурация ресурса определяет новый источник данных, а не повторно использует определение JBoss.
Посмотрите источник данных с JNDI
В том же ответе объясняется, как это сделать, но обратите внимание, что URI немного отличается в зависимости от того, выполняется ли поиск из клиентского кода вне контейнера EJB или из кода внутри контейнера EJB.