Как отключить зависимость ActiveMQ от jar-клиента

#java #jms #activemq

#java #jms #activemq

Вопрос:

Я публикую сообщение JMS с помощью ActiveMQ. Когда я использую приведенный ниже код, он правильно компилируется с двумя Jar (activemq-client.jar и geronimo-jms_1.1_spec.jar ):

 Connection connection = null;
ConnectionFactory connectionFactory = new 
ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_BROKER_URL);
connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic("customerTopic");

connection.start();

String payload = "Important task";
Message msg = session.createTextMessage(payload);
MessageProducer producer = session.createProducer(topic);
producer.send(msg);
Thread.sleep(3000);
session.close();
connection.close();
  

Однако во время выполнения выдается ошибка при включении всех jar-файлов зависимостей. Он отлично работает при добавлении всех jar-файлов зависимостей. но я не хочу добавлять эти банки зависимостей (около 17 МБ)

Есть ли какой-либо способ отключить зависимость jars для клиентского приложения ActiveMQ?

Комментарии:

1. Итак, вы ожидаете, что ваш код будет волшебным образом работать без всего вспомогательного кода, который заставляет его работать?

Ответ №1:

Зависимости во время компиляции и выполнения часто различаются, поскольку различаются требования к компиляции кода и к его фактическому запуску. Если существует зависимость во время выполнения, вы не можете просто избавиться от нее, иначе приложение не будет работать должным образом (или вообще). «Зависимости» — это зависимости по определенной причине; приложение зависит от них.