GlassFish 3.1.1 искажает имя ресурса и жалуется, что не может его найти - PullRequest
1 голос
/ 05 января 2012

Согласно этой статье и ряду других документов, ресурсы JDBC развертываются глобально (доступно для всего сервера), если только не префикс java:app/. Когда я изменяю jdbc/myDataSource на java:app/jdbc/myDataSource и myConnectionPool на java:app/myConnectionPool, развертывание завершается с исключением:

com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Invalid resource : { ResourceInfo : (jndiName=java:app/jdbc/myDataSource__pm), (applicationName=com.example.web_example_war_1.0-SNAPSHOT) }

Он прекрасно работает без префиксов java:app/, но затем ресурсы развертываются на всем сервере.

Ответы [ 2 ]

0 голосов
/ 06 января 2012

Прочитав этот раздел , я понял, что мне не нужно добавлять префикс ресурсов, определенных в glassfish-resources.xml, к префиксу области действия java:app/. Согласно этому документу:

Если определение ресурса предоставлено в архиве (т. Е., glassfish-resources.xml в .ear или других архивах), они считаются ресурсами области действия.

И затем далее говорится, что ресурсы относятся к области приложения, если приложение является EAR и путь равен META-INF/glassfish-resources.xml или (в моем случае) это WAR, а путь равен WEB-INF/glassfish-resources.xml.

Это может объяснить, почему GlassFish исказил имя. Скорее всего, произошло столкновение имен, потому что я добавил префикс.

0 голосов
/ 06 января 2012

Развертываете ли вы WAR-файлы, объединенные в EAR-файл, потому что по ссылке у вас есть префикс 'java: app /' для развертывания EAR.

...