| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > @Resource(name и mappedName) |
| Автор: ki6opr 12.4.2010, 07:42 | ||||
| Dependency Injection через @Resource (javax.annotation.Resource) есть у нее две проперти name и mappedName первая указывает на логическое имя ресурса, а вторая на сам путь к ресурсу причем installation-dependent (который отличается от сервера к серверу) поэтому можно написать специфичный для сервера дескриптор развертывания в котором собствено и хранить jndi путь к ресурсу именно для этого типа сервера (и вот тут у меня просто взрыв мозга) есть код:
есть sun-ejb.jar (для семейства AS Sun)
а в итоге получаю только NamingException что данные ресурс не найден, хотя он есть, причем почему то только на саму очередь, на фабрику не ругаеться. С mappedName="jms/MailQueue" для Glassfish и "queue/MailQueue" для Jboss инжектится и вполне себе отлично работает. Пробывал как name так и mappedName, вывод: что то я серьезно не понимаю... Подскажите пожалуйста кто-нибудь что у меня с лыжами |
| Автор: dobrolub 12.4.2010, 08:26 |
| У меня не богатый опыт с Sunовским AS, но советую проверить через консоль администрирования создаётся ли требуемая очередь с именем jms/MailQueue. |
| Автор: ki6opr 12.4.2010, 09:10 | ||
создается, я же написал что если просто поставить mappedName и в ней прописать специфичный для Glassfish или Jboss Jndi путь то ресурс заинжектится как мне кажется я упускаю какую то важную деталь именно в конфигах / аннотации из чего не работает ни в Glassfish ни в Jboss эта фича с логическим именем |
| Автор: ki6opr 12.4.2010, 09:32 |
| так ну как минимум я оказался не прав используя просто http://docs.sun.com/app/docs/doc/820-4502/beawu?a=view вместо http://docs.sun.com/app/docs/doc/820-4502/beaww?a=view для дескриптора Glassfish вкратце суть в том, что resource-ref игнорирует resource-ref для JMS ConnectionFactories а для JMSQueue нужно еще обязательно указывать логин/пароль |
| Автор: ki6opr 13.4.2010, 03:22 |
| Замена на resource-ref на resource-env-ref так в итоге ничего и не дала ... Никто что ли не писал приложения которые должны бы были развертываться на нескольких серверах ? |
| Автор: ki6opr 13.4.2010, 07:07 | ||||
| оказывается если использовать server specific конфиги (sun-ejb.xml, jboss.xml) нужно обязательно писать и ejb-jar.xml вообщем Glassfish поборол ejb-jar.xml:
и sun-ejb.xml
остался JBoss который ни в какую не хочет деплоить проект потому что в @Resource написан name а не mappedName |
| Автор: ki6opr 15.4.2010, 04:06 | ||||||||||
| вообщем поборол и Jboss в итоге что бы работало и там и там нужно сделать вот так MDB:
Sender:
ну и конфиги: ejb-jar.xml
sun-ejb-jar.xml
jboss.xml где все по особому
|