【发布时间】:2016-08-05 18:58:31
【问题描述】:
我正在创建两个使用 JMS 进行通信的 springboot 服务器和客户端应用程序,并且对于 activemq 的发布 5.12.1 一切正常,但是一旦我更新到 5.12.3 版本,我就会得到以下信息错误:
org.springframework.jms.support.converter.MessageConversionException: Could not convert JMS message; nested exception is javax.jms.JMSException: Failed to build body from content. Serializable class not available to broker. Reason: java.lang.ClassNotFoundException: Forbidden class MyClass! 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.
我继续提供的the URL,我发现我的问题与 ActiveMQ 的5.12.2 版本中实现的新安全性有关,我知道我可以通过定义受信任的包来解决它,但是我不知道在我的 SpringBoot 项目中将这样的配置放在哪里。
我在客户端和服务器中对 JMS 队列的唯一参考是在 application.properties 中设置它的 URI,并使用 @EnableJms 在我的“主”类上启用 JMS,这是我在单独的配置经纪人:
@Configuration
@ConfigurationProperties(prefix = "activemq")
public class BrokerConfiguration {
/**
* Defaults to TCP 10000
*/
private String connectorURI = "tcp://0.0.0.0:10000";
private String kahaDBDataDir = "../../data/activemq";
public String getConnectorURI() {
return connectorURI;
}
public void setConnectorURI(String connectorURI) {
this.connectorURI = connectorURI;
}
public String getKahaDBDataDir() {
return kahaDBDataDir;
}
public void setKahaDBDataDir(String kahaDBDataDir) {
this.kahaDBDataDir = kahaDBDataDir;
}
@Bean(initMethod = "start", destroyMethod = "stop")
public BrokerService broker() throws Exception {
KahaDBPersistenceAdapter persistenceAdapter = new KahaDBPersistenceAdapter();
persistenceAdapter.setDirectory(new File(kahaDBDataDir));
final BrokerService broker = new BrokerService();
broker.addConnector(getConnectorURI());
broker.setPersistent(true);
broker.setPersistenceAdapter(persistenceAdapter);
broker.setShutdownHooks(Collections.<Runnable> singletonList(new SpringContextHook()));
broker.setUseJmx(false);
final ManagementContext managementContext = new ManagementContext();
managementContext.setCreateConnector(true);
broker.setManagementContext(managementContext);
return broker;
}
}
所以我想知道我应该在哪里指定受信任的包。
谢谢:)
【问题讨论】:
标签: java spring-boot activemq