Я развертываю свое первое приложение веб-службы Java и только что закончил решение "Glassfish: Exception при подготовке приложения: Недопустимый ресурс: __pm". Я создал файл glassfish-resources.xml и поместил его в мою папку web-inf по адресу http://www.oracle.com/technetwork/articles/java/pongegf-1517943.html. (Мне потребовалось некоторое время, чтобы понять, что Netbeans поставил файл в неправильном месте, чтобы начать).
Теперь мне интересно узнать о распространении в реальном мире, где учетные данные входа в систему хранятся в файле WAR через файл glassfish-resources.xml. Предположительно, если мне когда-либо понадобится изменить учетные данные, мне придется перестроить для каждой конфигурации сервера, в которой я развертываюсь, поскольку мои учетные данные для входа будут отличаться между средами. Поскольку мы обычно проходим через 2-3 этапа тестирования, прежде чем приступать к производству, это кажется склонным к появлению новых ошибок или изменений. Есть ли способ поддерживать учетные данные для входа в конфигурационный файл, который не является частью файла скомпилированного WAR, или я пропустил что-то более фундаментальное?
Спасибо.
Обычно вы настраиваете пул соединений JDBC и используете ресурс JDBC для его ссылки. В приложении вы настраиваете ресурс JDBC, используемый через persistence.xml.
Что-то вроде этого, когда используется база данных Derby по умолчанию для Glassfish (ресурс JDBC и соединение уже настроены для этого, необходимо запустить только БД):
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="my_persistence">
<jta-data-source>jdbc/__default</jta-data-source>
</persistence-unit>
Поэтому во всех средах вы должны убедиться, что ресурс JDBC имеет одно и то же имя (если вы не хотите изменять файл войны), но фактическая конфигурация может быть другой, поскольку она хранится в экземпляре Glassfish, а не в вашем военном файле.
Согласно комментариям, поскольку вы задали @Trebor для определения типа DB
во runtime
есть способ пройти, посетите это соединение JDBC также
http://docs.oracle.com/javase/6/docs/api/java/sql/DatabaseMetaData.html
http://tomee.apache.org/examples-trunk/injection-of-entitymanager/README.html
это определенно решит вашу проблему. Все самое лучшее.!