Предисловие:
Большинство приложений J2EE используют управляемые контейнером источники данных через JNDI.Это нормально, поскольку дает одно место для настройки этих соединений.
Проблема возникает, когда мы хотим использовать среду ORM (например, hibernate) или что-то, что должно знать схему по умолчанию (в основном для Oracle, могут быть и другие),который может отличаться от имени пользователя, используемого для подключения к БД.
Я хочу поместить имя схемы по умолчанию где-то рядом с определением источника данных.Один из вариантов - поместить его в JNDI.Затем я буду вручную читать оттуда перед созданием EntityManager (ну, на самом деле, используя Spring).
Как я выяснил, существует простой способ указать пользовательский ресурс (в этой ситуации это будет String с именем схемы по умолчанию).) в Apache Tomcat вот так (поправьте меня, если я ошибаюсь):
<Environment name="schemaNames/EmployeeDB"
type="java.lang.String"
value="empl"
description="Schema name of Employees Database for HR Applications"/>
В любом случае, учитывая, что это можно сделать в Apache Tomcat, как мне настроить тот же пользовательский ресурс JNDI (типа String)на других серверах приложений:
- JBoss 4/5
- WebSphere 6/7
- WebLogic 9/10
Если вы знаетео других серверах, которые тоже были бы хорошими.
Кроме того, в качестве альтернативы я не хочу указывать имя схемы в системных свойствах или переменных среды.
Большое спасибо!
Обновление:
Нашел какой-то способ добиться этого на JBoss.Я не проверял это, хотя.
http://forums.java.net/jive/thread.jspa?messageID=316228
Нашел информацию для WebLogic, но они говорят об этом программно, а не с конфигурацией:
http://weblogic -wonders.com/ weblogic / 2010/06/12 / binding-objects-in-weblogic-servers-jndi-tree /
http://forums.oracle.com/forums/thread.jspa?messageID=4397353