доверенный пакет activemq Проблема - PullRequest
0 голосов
/ 20 февраля 2019

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

Failed to build body from content. Serializable class not available to broker. Reason: java.lang.ClassNotFoundException: Forbidden class demo.CollectorProcessInfo! This class is not trusted to be serialized as ObjectMessage payload. Please take a look at http://activemq.apache.org/objectmessage.html for more information on how to configure trusted classes.

пробовал решение, указанное в следующей ссылке. SpringBoot + ActiveMQ - Как установить доверенные пакеты?

также пытался -Dorg.apache.activemq.SERIALIZABLE_PACKAGES = *

, но не помогло.

Вот код для извлечения сообщения

public QueueMessage pull(QUEUENAME queueName,
        long timeOutInMilliSeconds) throws JMSException {
    Connection connection = null;
    Session session = null;
    MessageConsumer consumer = null;
    try{
        ActiveMQJMSConnectionFactory factory = new ActiveMQJMSConnectionFactory();
        connection = factory.getConnection();
        connection.start();
        session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Destination destination = session.createQueue(queueName.toString());
        consumer = session
                .createConsumer(destination);
        ObjectMessage receivedMessage = (ObjectMessage) consumer.receive(timeOutInMilliSeconds);
        QueueMessage message = null;
        if(receivedMessage != null){
            message = (QueueMessage) receivedMessage.getObject();
        }
        else{
            logger.debug("Received message is null on a timeout");
        }
        return message;
    }
    finally{
        if(consumer!=null)
            consumer.close();
        if(session!=null)
            session.close();
        if(connection!=null)
            connection.close();
    }

}
...