У меня работает брокер, но когда я извлекаю сообщение из очереди, появляется следующее исключение.
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();
}
}