|
|
|
Для чего определение resource-ref в web.xml?
|
|||
|---|---|---|---|
|
#18+
При разработке web-приложений в web.xml описан следующим образом: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Контейнером сервлетов у меня является Tomcat 6. В нем (context.xml) описан ресурс БД: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Соответственно, в приложении соединение я получаю через DataSource по JNDI: Код: java 1. 2. Вопрос такой: зачем вообще необходимо определение resource-ref в web.xml, если и без него всё успешно работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2013, 14:27 |
|
||
|
Для чего определение resource-ref в web.xml?
|
|||
|---|---|---|---|
|
#18+
Exiart, http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html : "If a resource has been defined in a <Context> element it is not necessary for that resource to be defined in /WEB-INF/web.xml. However, it is recommended to keep the entry in /WEB-INF/web.xml to document the resource requirements for the web application. Проще говоря, такое описание стандарт, а возможность обойтись без его соблюдения, дает специфическая особенность Tomcat. Причем, я не нашел, что это гарантируется в будущих версиях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2013, 10:08 |
|
||
|
Для чего определение resource-ref в web.xml?
|
|||
|---|---|---|---|
|
#18+
Exiart, Суть в том, что когда создаешь web\ejb приложение, то ты не обязательно знаешь среду (environment) в котором это приложение будтет работать. В web.xml разработчик опысывает виртуальное jndi дерево. Описывая что для работы его приложения нужны такие ресурсы (например datasource, jms очереди и т.п.). С другой стороны администратор сервера приложений, настраивает реальные ресурсы (пулы соодинений и все остальное). Есть еще роль Deployer. При развертывании приложения, этот человек ставит соотвествие между тем что нужно разработчику и тем что реально сконфигурировано на сервере. Вообще в Java EE определено много ролей, и за ролью можут стоять разные люди и даже целые команды. Compontent Developer, Application Assembler, Deployer, Server Administrator (лишь некоторые). И все они работают независимо, дескрипторы развертывания web.xml, <provider>-web.xml это их способ друг с другом договориться. Соотвественно по твоему примеру: context.xml - это отвественность Server Administrator web.xml - это отвественность Application Assembler Deployer-ру ничего маппить не нужно, так как конфигурация с обоих сторон совпала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2013, 12:54 |
|
||
|
Для чего определение resource-ref в web.xml?
|
|||
|---|---|---|---|
|
#18+
vas0, Я в роли девелопера работая у себя в тестовой среде задал такие установки, какие я привел в своём вопросе. После отладки приложения я отдаю его (war-файл) другому челу, который должен задеплоить приложение в продакшене. Но в продакшене (тоже допустим Tomcat) следующие установки: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Тогда имеем проблему, ибо resource-ref в web.xml моего приложения обращается к jdbc/testDS ресурсу контейнера, которого в продакшене нету. Что может сделать чел, которому я отдал приложение? Отредактировать web.xml. Ну а код кто будет редактировать? Вроде как в других серверах (JBoss, например) существует ещё маппинг, который можно редактировать в таких случаях и всё ок, но для томката я такого не нашёл. Или я не так вас понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2013, 19:10 |
|
||
|
Для чего определение resource-ref в web.xml?
|
|||
|---|---|---|---|
|
#18+
..... продолжу. Ну или админ сервера должен менять имя ресурса у себя в context.xml. А правильный ли такой подход? Мало ли кем ресурс ещё используется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2013, 19:15 |
|
||
|
Для чего определение resource-ref в web.xml?
|
|||
|---|---|---|---|
|
#18+
Exiart, Насколько я знаю в tomcat специфических дескрипторов развертывания нет. Поэтому да будет проблема. Тут фактически разработчик влияет на администратора веб сервера. Но других вариантов настройки сервера в tomcat нет (насколько я знаю). Я как бы общий подход хотел продемострировать. В серверах приложений glassfish, weblogic, jboss mapping делается через специфический дескриптор развертывания. И фактически за разработку, администрирование сервера, и развертывание приложения могут разные люди отвечать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2013, 23:10 |
|
||
|
Для чего определение resource-ref в web.xml?
|
|||
|---|---|---|---|
|
#18+
vas0, Ну тогда всё понятно, спасибо за подробное объяснение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2013, 08:23 |
|
||
|
Для чего определение resource-ref в web.xml?
|
|||
|---|---|---|---|
|
#18+
vas0, Если Вы сообщите мне, как прописать ConnectionFactory (для jdbc-коннектов) в JNDI, буду Вам очень признателен. Поскольку: Имею еарку, внутри нее рарку с адаптером, в ней META-INF, в ней ra.xml: ---------------------- ... все как обычно в ra.xml ... Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... ----------------------- и weblogic-ra.xml: -------------------------- Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... далее все теги закрываются... --------------------------------- Все деплоится на WebLogic нормально. Но когда выполняется код: Код: java 1. то вылетает javax.naming.NameNotFoundException: While trying to look up /jca/ME in /app/ejb/core.jar#SpecialDateSession.; remaining name '/jca/ME' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 12:23 |
|
||
|
Для чего определение resource-ref в web.xml?
|
|||
|---|---|---|---|
|
#18+
уточню, что вызов Код: java 1. происходит из ejb, находящегося в ejb-jar ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 14:00 |
|
||
|
Для чего определение resource-ref в web.xml?
|
|||
|---|---|---|---|
|
#18+
Grglgn, Можно попробовать <jndi-name>jca/ME</jndi-name> ну или уж <jndi-name>java:comp/env/jca/ME</jndi-name> Но в WL предпочитают что-то типа weblogic.jndi.jca.ME ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 14:54 |
|
||
|
Для чего определение resource-ref в web.xml?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, попробовал <jndi-name>java:comp/env/jca/ME</jndi-name> та же ошибка. Но вообще то я думал, что это имя может быть любым - какое пропишу в конфигах, по такому и могу в коде искать в JNDI. Насколько я понимаю, я не во всех конфигах, которых нужно это прописал, а в каких нужно - не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 16:38 |
|
||
|
Для чего определение resource-ref в web.xml?
|
|||
|---|---|---|---|
|
#18+
Grglgn, Вопрос откуда он начнет искать. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2015, 16:40 |
|
||
|
Для чего определение resource-ref в web.xml?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, может надо InitialContext с какими-то особыми параметрами создавать? я сейчас по умолчанию создаю new InitialContext() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2015, 13:01 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38919313&tid=2125639]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 310ms |

| 0 / 0 |
