2016-05-07 8 views
1

Я создал веб-приложение с Wildfly 8.2.0 Final. Im теперь пытается создать тему jms и отправлять и получать сообщения через 2 боба.Wildfly 8.2.0 JMS Тема отсутствует

Bean 1 мой отправитель/издатель:

@Stateless 
public class ChatPublisherBean implements ChatPublisherLocal, ChatPublisherRemote { 


@JMSConnectionFactory("java:/ConnectionFactory") 
private ConnectionFactory connectionFactory; 

@Resource(lookup = "java:global/jms/ChatRoomTopic") 
private Topic topic; 


//more code ... 

Bean 2 мой приемник/потребитель:

@MessageDriven(mappedName = "java:global/jms/ChatRoomTopic", 
    messageListenerInterface = MessageListener.class, 
    activationConfig = { 
      @ActivationConfigProperty(
      propertyName = "destinationType", 
      propertyValue = "javax.jms.Topic"), 
      @ActivationConfigProperty(
      propertyName = "destination", 
      propertyValue = "java:global/jms/ChatRoomTopic")}) 
public class ChatReceiverBean implements MessageListener, ChatReceiverLocal, ChatReceiverRemote { 


@Inject 
private ChatServiceLocal chatService; 

@Inject 
private ChatPublisherBean jmsConnectionBean; 


//more code 

Как вы можете видеть, я использовать автоматическую генерацию ресурсов из JMS 2,0 (или, по меньшей мере, Я стараюсь), и он хорошо работает с причиной ConnectionFactory, я использую стандартную фабрику там.

Проблема в том, что когда я пытаюсь ее развернуть, моя тема не найдена должным образом. Wildfly дает мне эту ошибку:

19:03:38,187 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 2) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "app.ear")]) - failure description: {"JBAS014771: Services with missing/unavailable dependencies" => [ 
"jboss.deployment.subunit.\"app.ear\".\"core-ejb.jar\".component.ChatReceiverBean.CREATE is missing [jboss.ra.hornetq-ra]", 
"jboss.naming.context.java.comp.app.core-ejb.ChatPublisherBean.env.\"de.app.platform.chat.services.jms.ChatPublisherBean\".topic is missing [jboss.naming.context.java.global.jms.ChatRoomTopic]" 
]} 
19:03:38,188 ERROR [org.jboss.as.server] (management-handler-thread - 2) JBAS015870: Deploy of deployment "app.ear" was rolled back with the following failure message: 
{"JBAS014771: Services with missing/unavailable dependencies" => [ 
"jboss.deployment.subunit.\"app.ear\".\"core-ejb.jar\".component.ChatReceiverBean.CREATE is missing [jboss.ra.hornetq-ra]", 
"jboss.naming.context.java.comp.app.core-ejb.ChatPublisherBean.env.\"de.app.platform.chat.services.jms.ChatPublisherBean\".topic is missing [jboss.naming.context.java.global.jms.ChatRoomTopic]" 

Также, кажется, проблема с адаптером hornetq, который находится в моем standalone.xml объявлен как стандарт:

<mdb> 
    <resource-adapter-ref resource-adapter-name="${ejb.resource-adapter-name:hornetq-ra}"/> 
    <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/> 
</mdb> 

Кто-нибудь теперь, что им делать неправильно?

ответ

0

Мне всегда приходилось создавать темы вне кода. У меня есть небольшой скрипт, который я запускаю, чтобы настроить их. Соответствующая часть что-то вроде: позже

$WILDFLY_HOME/bin/jboss-cli.sh --connect --command="jms-topic add --topic-address=ChatRoomTopic --entries=java:/jms/ChatRoomTopic 

, если вы хотите, чтобы удалить его:

$WILDFLY_HOME/bin/jboss-cli.sh --connect --command="jms-topic remove --topic-address=ChatRoomTopic 

Это было сделано в Wildfly 8.2

+0

, к сожалению, разве работает в моем случае, но ТНХ все равно ;) может быть, другой вопрос: знаете ли вы, почему вы не могли создавать темы в своем коде? –

+0

Что не работает? Для запуска команд необходимо запустить сервер. В общем, вы не можете создать тему в коде - для этого нет стандартных API. – stdunbar

 Смежные вопросы

  • Нет связанных вопросов^_^