Минимум банок, необходимых для клиентского приложения jms - PullRequest
0 голосов
/ 24 апреля 2019

Какой набор jar необходим для клиентского приложения java JMS, чтобы опубликовать сообщение.У меня есть activemq-client-5.13.3.jar , на моем пути к классам.но этого недостаточно, и вы получаете

'Exception in thread "main" java.lang.NoClassDefFoundError: 
javax/management/j2ee/statistics/Stats'.

Примечание: - при добавлении 'activemq-all' jar.Это будет работать нормально, но я не хочу добавлять эти несколько банок, потому что это около 17 МБ.

 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();

        if(connection != null) {
            connection.close();
        }
    }

1 Ответ

2 голосов
/ 24 апреля 2019

Один простой способ выяснить это - использовать maven с исходным кодом ActiveMQ , извлеченным из git. Перейдите в папку проекта activemq-client и попросите maven создать дерево зависимостей mvn dependency:tree

[INFO] org.apache.activemq:activemq-client:bundle:5.15.10-SNAPSHOT
[INFO] +- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] +- org.apache.geronimo.specs:geronimo-jms_1.1_spec:jar:1.1.1:compile
[INFO] +- org.fusesource.hawtbuf:hawtbuf:jar:1.11:compile
[INFO] +- org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:jar:1.0.1:compile
[INFO] +- commons-net:commons-net:jar:3.6:compile
[INFO] +- javax.jmdns:jmdns:jar:3.4.1:compile
[INFO] +- junit:junit:jar:4.12:test
[INFO] |  \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] \- org.slf4j:slf4j-log4j12:jar:1.7.25:test
[INFO]    \- log4j:log4j:jar:1.2.17:runtime

В вашем случае вы можете переключиться на тэг релиза для 5.13.3, чтобы получить точный список, хотя я не думаю, что он сильно изменился с тех пор. Конечно, если вы строите свой проект с использованием maven, вы можете сделать это также из директории вашего проекта, и это даст вам дерево зависимостей для всего вашего проекта.

...