Activemq http proxy

Je dois connecter ActiveMQ-Listener à un courtier situé à l’extérieur du pare-feu via un proxy HTTP / HTTPS. J’ai cherché partout mais je n’ai pas trouvé de solution pour définir les parameters de proxy pour AcitveMQ-Client.

ActiveMQ utilise Apache HttpClient mais je ne sais pas comment manipuler la création de ce client dans ActiveMQ. L’utilisation de htttps.proxyHost et de https.proxyPort n’est pas utilisée par HttpClient.

Est-il possible de définir un proxy http / https global pour toutes les instances de HttpClient?

ActiveMQ HttpClientTransport contient les méthodes suivantes que vous pouvez utiliser pour spécifier l’hôte proxy et le port:

public void setProxyHost(Ssortingng proxyHost) public void setProxyPort(int proxyPort) 

Pour la version 5.6+, vous pouvez également fournir le nom d’utilisateur et le mot de passe du proxy:

 public void setProxyUser(Ssortingng proxyUser) public void setProxyPassword(Ssortingng proxyPassword) 

Pour configurer un JmsInvokerProxyFactoryBean:

   http://myendpoint.somewhere.com:5186?proxyUser=fred&proxyPassword=ahoy&proxyHost=myproxyhost.somewhere.com&proxyPort=8081        

Voici comment activer le proxy http dans ActiveMQ si vous n’utilisez pas la configuration xml:

  1. Ajouter la bibliothèque activemq-http au chemin de classe ( https://mvnrepository.com/artifact/org.apache.activemq/activemq-http )

  2. Ajoutez proxyHost et proxyPort tant que parameters URI et créez une fabrique de connexions avec cet URI:

     URI brokerUri = new URI("http://host:port"); Map additionalParameters = new HashMap<>(); additionalParameters.put("proxyHost", "localhost"); additionalParameters.put("proxyPort", "8888"); additionalParameters.put("proxyUser", "xxxx"); // optional additionalParameters.put("proxyPassword", "xxxx"); // optional brokerUri = org.apache.activemq.util.URISupport.applyParameters(brokerUri, additionalParameters); ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUri); Connection connection = connectionFactory.createConnection();