Java-брокер Mosquitto показывает ошибку: Исключение в потоке "main" java.lang.RuntimeException: Не удается найти ресурс "config / moquette.conf" - PullRequest
0 голосов
/ 01 мая 2018

Я хочу поэкспериментировать с протоколом mqtt. Для этого я скачал необходимый файл, объясненный по этой ссылке http://www.hascode.com/2016/06/playing-around-with-mqtt-and-java-with-moquette-and-eclipse-paho/.

Код:

import java.io.IOException;
import java.util.Arrays;
import java.util.List;

import io.moquette.interception.AbstractInterceptHandler;
import io.moquette.interception.InterceptHandler;
import io.moquette.interception.messages.InterceptPublishMessage;
import io.moquette.server.Server;
import io.moquette.server.config.ClasspathConfig;
import io.moquette.server.config.IConfig;

public class s1 
{

    static class PublisherListener extends AbstractInterceptHandler {
        @Override
        public void onPublish(InterceptPublishMessage message) {
            System.out.println("moquette mqtt broker message intercepted, topic: " + message.getTopicName()
                    + ", content: " + new String(message.getPayload().array()));
        }

    public static void main(String args[]) throws IOException
    {
        // Creating a MQTT Broker using Moquette
                final IConfig classPathConfig = new ClasspathConfig();

                final Server mqttBroker = new Server();
                final List<? extends InterceptHandler> userHandlers = Arrays.asList(new PublisherListener());
                mqttBroker.startServer(classPathConfig, userHandlers);

                System.out.println("moquette mqtt broker started, press ctrl-c to shutdown..");
                Runtime.getRuntime().addShutdownHook(new Thread() {
                    @Override
                    public void run() {
                        System.out.println("stopping moquette mqtt broker..");
                        mqttBroker.stopServer();
                        System.out.println("moquette mqtt broker stopped");
                    }
                });
        }
    }
}

Однако, когда я пытаюсь скомпилировать, он показывает эту ошибку.

Exception in thread "main" java.lang.RuntimeException: Can't locate the resource "config/moquette.conf"
    at io.moquette.server.config.ClasspathConfig.<init>(ClasspathConfig.java:42)
    at mytest.s1$PublisherListener.main(s1.java:27)

Я не могу понять это сообщение об ошибке. Я уже установил mosquito в C: \ Program Files (x86) \ mosquitto. Я проверил это с помощью Издатель:

mosquitto_pub -m "message from mosquitto_pub client" -t "test"

и подписчик:

mosquitto_sub -t "test".

Пожалуйста, дайте мне совет, чтобы решить эту проблему.

1 Ответ

0 голосов
/ 03 мая 2018

Появляется ошибка, потому что bin, config и lib не добавляются в проект Maven (см. Раздел «Готов, брокер»).

Легкий брокер Java MQTT: https://github.com/andsel/moquette Скачать файл jar https://bintray.com/artifact/download/andsel/generic/distribution-0.10-bundle-tar.tar.gz

Клиент Eclipse Paho Java: https://www.eclipse.org/paho/clients/java/
Загрузить файл jar https://repo.eclipse.org/content/repositories/paho/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.0.2/org.eclipse.paho.client.mqttv3-1.0.2.jar

Прочтите этот урок. http://www.hascode.com/2016/06/playing-around-with-mqtt-and-java-with-moquette-and-eclipse-paho/ Используйте пример кода брокера и код издателя здесь.

Ready ‘Broker’ part
1. Create Eclipse maven project.
2.  Download distribution-0.10-bundle-tar.tar.gz from https://bintray.com/artifact/download/andsel/generic/distribution-0.10-bundle-tar.tar.gz
It contains bin, config and lib folder.
3.  Copy these 3 folders in maven project 
4. Compile it.

Ready ‘Publisher’ part
1.  Create Eclipse java project.
2.  Add org.eclipse.paho.client.mqttv3-1.0.2.jar
3.  Compile it.

Ready ‘Subscriber’ part
1.  Create Eclipse java project.
2.  Add org.eclipse.paho.client.mqttv3-1.0.2.jar
3.  Compile it.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...