PUSH с jeroMQ

Я думаю, что что-то не так с моим zmq.jar, поэтому я попытался с jeroMQ, но у меня та же проблема.

Это мой метод:

private boolean submitEvent(String ioMessage) {
    log.info("SEND");

    ZMQ.Context context = ZMQ.context();

    ZMQ.Socket sender = context.socket(ZMQ.PUSH);

    sender.connect("tcp://localhost:8086");

    sender.send("MESSAGE");

    return true;

}

У меня есть скрипт на питоне, который является PULL, и если я попробую push-скрипт также на питоне, он получит все.

Итак, моя проблема в java.

Я вижу в логах первую строчку ("отправить"), но в скрипте ничего не получаю.

Что мне следует изменить?


person Biribu    schedule 01.04.2014    source источник


Ответы (1)


Из Распространенные ошибки на JeroMQ Вики

  • Правильно закройте все сокеты, иначе Context.term() будет ждать вечно

Итак, ваш окончательный код должен быть

private boolean submitEvent(String ioMessage) {

    log.info("SEND");

    ZMQ.Context context = ZMQ.context();

    ZMQ.Socket sender = context.socket(ZMQ.PUSH);

    sender.connect("tcp://localhost:8086");

    sender.send("MESSAGE");

    sender.close();

    context.term(); 

    return true;

}
person vzamanillo    schedule 01.04.2014
comment
Спасибо, но я проверил журнал и обнаружил, что проблема возникает из-за: java.lang.NoClassDefFoundError: org/jeromq/ZContext, но я не знаю, почему, потому что это в проекте. - person Biribu; 01.04.2014
comment
Да, мне пришлось изменить маршрут моего jeromq.jar, который я должен был поместить внутрь проекта, а не просто добавить его в путь к библиотеке. Спасибо чувак - person Biribu; 01.04.2014