|
|
|
Tomcat + Flex + BlazeDS + JMS (ActiveMQ)
|
|||
|---|---|---|---|
|
#18+
Привет всем! Вот - пытаюсь к существующему прожекту прикрутить JMS в реализации ActiveMQ. На жаль, глубоких знаний в организации веб-приложений нету... И, похоже, напоролся на какую-то мелочь, которую не могу побороть. При попытке подключения вываливается ошибка - [MessagingError message='Адрес назначения "message-destination" не существует или адрес назначения не имеет определенных каналов (и в приложении не определены каналы по умолчанию.)'] Аналог на аглицком - [MessagingError message='Destination "message-destination" either does not exist or the destination has no channels defined (and the application does not define any default channels.)'] Чего бы это оно? Чуть больше подробностей. Разработка идет при помощи ИДЕ IntelliJ Idea 10.5, Tomcat 7, ActiveMQ 5.8. ИМХО осложнения могли возникнуть в результате того, что у нас в системе уже используется BlazeDS для передачи жава-объектов во Flex (remoting objects). И я подумал, что нужно настроить отдельный канал для обработки сообщений. Ковырять связку ActiveMQ и BlazeDS я начал с этого примера: статья Мартина , и продолжил тут: дока к ActiveMQ Пример настроенных сервисных файлов, лежащих в папке /WEB-INF/flex/ я приложил в аттаче. MXML- cкрипт, использующий созданную конфигурацию - ниже Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2013, 13:45:12 |
|
||
|
Tomcat + Flex + BlazeDS + JMS (ActiveMQ)
|
|||
|---|---|---|---|
|
#18+
Да, забыл еще пару ньюансов. В папке ..\apache-tomcat-7.0.19\conf\ лежит context.xml, его содержание так же приаттачил к сообщению. Active MQ запускается как отдельное приложение - через ..\bin\activemq.bat ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2013, 14:01:34 |
|
||
|
Tomcat + Flex + BlazeDS + JMS (ActiveMQ)
|
|||
|---|---|---|---|
|
#18+
Что-то подсказывает мне, что не сильно тебе тут помогут - немногие юзают флекс, да еще в такой связке. В одном проекте настраивал подобную связку, только выкинул BlazeDS и взял GraniteDS, и советую это сделать, так как и удобнее, и универсальнее, и коммюнити неплохое. А возможности получше - приближаются к LCDS. Я настраивал ActiveMQ на получение сообщений от клиента через Gravity - comet-технология от GraniteDS. При этом сборку делал на Spring - думаю, это наиболее логично связать такой зоопарк. При этом ActiveMQ не был запущен отдельно, его поднимал спринг. Свои конфиги могу показать, но они актуальны исключительно при моей конфигурации GraniteDS - Spring - ActiveMQ (+Gravity, +Tomcat). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2013, 16:48:48 |
|
||
|
Tomcat + Flex + BlazeDS + JMS (ActiveMQ)
|
|||
|---|---|---|---|
|
#18+
IDVsbruck , Спасибо хоть за какой-то ответ :) Прожект, в который я пытаюсь запилить ActiveMQ - имеет уже довольно обширную историю, там напедалено не один мегабайт сырцов, и переводить на новые рельсы - мягко говоря, проблематично. Тем более, с моим уровнем опыта по конфигурированию подобного рода прожектов. Конфиги - раз они не БлейзДС - думаю, смысла не имеют... Единственное что - подскажите, есть ли у Вас передача жава-объектов во Флекс? Если есть, то Вы использовали один канал для жавы и сообщений, или разные? Может там были какие-то заморочки с задаваемым набором созданных каналов? Может все же глянете мои конфиги - вдруг увидите навскидку в чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2013, 17:56:44 |
|
||
|
Tomcat + Flex + BlazeDS + JMS (ActiveMQ)
|
|||
|---|---|---|---|
|
#18+
Я сразу посмотрел - ничего не понятно, они не спринговские, а нативные ))) "один канал для жавы и сообщений, или разные?" - это я не очень понял Пробегусь по настройкам, может, где чего поможет ... 1. Брокер Код: xml 1. 2. 3. 4. 5. Тем самым спринг поднимает ActiveMQ. У тебя тут протокол tcp://localhost:61616. 2. Создаю слушателя - бин для topic destination Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. который при инициализации формирует мне конфиг типа твоего messaging-config.xml. Адаптер и сервисы выглядят примерно так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. То есть видно, что я связал брокер "activemq" со своим кастомным адаптером CustomServiceAdapter extends ActiveMQServiceAdapter, где в @Override public Object manage() обрабатываю сообщения SUBSCRIBE_OPERATION и UNSUBSCRIBE_OPERATION. Другие идут на CustomGravityServlet implements org.apache.catalina.comet.CometProcessor, где обрабатываются стандартным образом. Конфигурируется сервлет в web.xml: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 3. Producer: Код: xml 1. 2. 3. 4. и зависимые Код: xml 1. 2. 3. 4. 5. 6. Входящие получаю как описал выше (кастомная подписка и отписка нужна для регистрации юзера в системе и контроля уникальности). Отправку сообщений делаю примерно так (это приватная, для общей меняется топик): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Не считая кастомного обработчика подписки, все выглядит несложным. Но это все в контексте спринга ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2013, 21:11:07 |
|
||
|
Tomcat + Flex + BlazeDS + JMS (ActiveMQ)
|
|||
|---|---|---|---|
|
#18+
Большое спасибо за развернутый ответ! Думаю, он будет ОЧЕНЬ полезен тому, что будет создавать связку в указанной Вами конфигурации. В моем случае, к сожалению, я не нашел нужной инфы :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2013, 15:31:49 |
|
||
|
Tomcat + Flex + BlazeDS + JMS (ActiveMQ)
|
|||
|---|---|---|---|
|
#18+
Я почти отчаялся, но все еще по свободе пытаюсь ковырять это дело. Буду выкладывать постепенно найденные ошибки в конфигурации. Вдруг еще и кто ответит на стартпост :) Итак, первая допущенная ошибка - имя компа. У меня стояло VAD_NOTE. Так вот! Никаких знаков подчеркиваний в имени компа. Т.е. сетевое имя должно быть well-formed. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2013, 18:12:06 |
|
||
|
Tomcat + Flex + BlazeDS + JMS (ActiveMQ)
|
|||
|---|---|---|---|
|
#18+
вам же ошибка вроде как говорит в чем дело - не определен канал добавьте канал сюда <destination id="genericManager"> <properties> <factory>spring</factory> <source>genericManager</source> </properties> </destination> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2013, 23:10:54 |
|
||
|
Tomcat + Flex + BlazeDS + JMS (ActiveMQ)
|
|||
|---|---|---|---|
|
#18+
breathвам же ошибка вроде как говорит в чем дело - не определен канал добавьте канал сюда <destination id="genericManager"> <properties> <factory>spring</factory> <source>genericManager</source> </properties> </destination> А куда это - сюда? Что это за файл настроек? Что-то типа spring-integration.xml? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2013, 12:09:36 |
|
||
|
Tomcat + Flex + BlazeDS + JMS (ActiveMQ)
|
|||
|---|---|---|---|
|
#18+
>Что-то типа spring-integration.xml? нет скорей всего, в ваши /WEB-INF/flex/ конфиги как понял вам нужно именно jms(messaging-config.xml), а не Remoting Service(remoting-config.xml), http://livedocs.adobe.com/blazeds/1/blazeds_devguide/ http://micropilot.tistory.com/entry/Server-Push-example ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2013, 15:39:40 |
|
||
|
Tomcat + Flex + BlazeDS + JMS (ActiveMQ)
|
|||
|---|---|---|---|
|
#18+
breathнет скорей всего, в ваши /WEB-INF/flex/ конфиги как понял вам нужно именно jms(messaging-config.xml), а не Remoting Service(remoting-config.xml), Да дело в том, что доку я уже перешерстил прямо, вдоль и поперек. При сравнении доки и blazeDS turnkey - выходит, что либо дока врет, либо турнкей как-то построен с применением тайных знаний. Ну нет того, что приведено в доке - в настройках прожекта в турнкее.. Мне нужно и ремотинг, и мессажинг, в том-то и дело. В аттаче - свежее содержимое web-inf/flex ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2013, 18:26:53 |
|
||
|
Tomcat + Flex + BlazeDS + JMS (ActiveMQ)
|
|||
|---|---|---|---|
|
#18+
а если так, remoting-config.xml .. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 00:47:42 |
|
||
|
Tomcat + Flex + BlazeDS + JMS (ActiveMQ)
|
|||
|---|---|---|---|
|
#18+
дополнение, это для вызова из flash через var ro:RemoteObject = new RemoteObject("genericManager"); ro.showBusyCursor = true; ro.addEventListener("result", result); ro.addEventListener("fault", fault); ro.callJavaMethod(); ... для jms(messaging-config.xml) реализовывать свой адаптер вроде как нужно, вот пример с ejb http://biemond.blogspot.ru/2010/01/flex-data-push-with-blazeds-and-ejb3.html, но он тут как провайдер данных просто меняете на что угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 01:01:18 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38289293&tid=2129209]: |
0ms |
get settings: |
19ms |
get forum list: |
30ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
56ms |
get topic data: |
23ms |
get forum data: |
5ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 320ms |
| total: | 551ms |

| 0 / 0 |
