MDB не получает сообщение от потребителя - PullRequest
0 голосов
/ 29 мая 2019

Я запускаю потребителя и производителя, но MDB не получает сообщение.

Я использовал подобный код в другом приложении, и он работает.с этим приложением mdb никогда не вызывается, и я не понимаю, если это проблема конфигурации (я не знаю, что изменить) или код.

MDB:

public class changeRistMDB implements MessageListener {
    @Override
    public void onMessage(Message message) {        
        try {
            RistDTO order = message.getBody(RistDTO.class);
            System.out.println("Expensive order receivede: " + order);
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}

ПОТРЕБИТЕЛЬ:

public class ChangeConsumer {
    public static void main (String [] args ) throws NamingException {        
        Context jndiContext = new InitialContext();
        ConnectionFactory connectionFactory = (ConnectionFactory) jndiContext.lookup("jms/javaee7/ConnectionFactoryRist");
        Destination topic = (Destination) jndiContext.lookup("jms/javaee7/TopicRist");       
        System.out.println("\n Infinite loop. Waiting...");        
        try (JMSContext jmsContext = connectionFactory.createContext()) {
            while(true) {
                RistDTO order = jmsContext.createConsumer(topic).receiveBody(RistDTO.class);
                System.out.println("Order received: " + order);
            }
        }
    }
}

ПРОИЗВОДИТЕЛЬ:

public class ChangeProducer {    
    public static void main (String [] args ) throws NamingException {        
        RistDTO order =  new RistDTO("1",-200);
        Context jndiContext = new InitialContext();        
        ConnectionFactory connectionFactory = (ConnectionFactory)jndiContext.lookup("jms/javaee7/ConnectionFactoryRist");
        Destination topic = (Destination) jndiContext.lookup("jms/javaee7/TopicRist");   
        try ( JMSContext jmsContext = connectionFactory.createContext()) {
            jmsContext.createProducer().send(topic, order);
        }
    }
}

Производитель и потребитель работают, но MDB не получает.

...