SpringBoot + ActiveMQ - Wie man Vertrauenswürdige Pakete?

Ich bin Schaffung von zwei springboot server & client-Anwendungen die Kommunikation mit JMS, und alles ist in Ordnung, mit der Veröffentlichung 5.12.1 für activemq, aber sobald ich update auf die 5.12.3 version, ich bekomme die folgende Fehlermeldung :

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.

Ging ich auf die URL bereitgestellt wird und ich herausgefunden, dass mein Problem mit den neuen Sicherheitsmaßnahmen in der 5.12.2 release von ActiveMQ, und ich verstehe, dass ich es beheben könnte durch die Definition der vertrauenswürdigen Pakete, aber ich habe keine Idee, wo man solch eine Konfiguration in meinem SpringBoot Projekt.

Die einzige Referenz, die ich mache, um die JMS-Warteschlange in mein client und mein server ist die Einrichtung, es ist URI in Anwendung.Eigenschaften und aktivieren der JMS auf mein "main" - Klasse mit @EnableJms, und hier ist meine Konfiguration, die auf dem separaten broker :

@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;
    }
}

Also ich würde gerne wissen, wo ich bin, soll angeben, die Vertrauenswürdige Pakete.

Dank 🙂

InformationsquelleAutor AntoineB | 2016-04-14
Schreibe einen Kommentar