Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 反应堆,未能加载等级“;org.slf4j.impl.StaticLoggerBinder”的;_Java_Reactor_Project Reactor - Fatal编程技术网

Java 反应堆,未能加载等级“;org.slf4j.impl.StaticLoggerBinder”的;

Java 反应堆,未能加载等级“;org.slf4j.impl.StaticLoggerBinder”的;,java,reactor,project-reactor,Java,Reactor,Project Reactor,我已经开始玩反应堆了,但我的第一个项目有问题:D 在github中,我尝试写一个“hello world”,但没有成功 有什么问题 代码: package reactor; import static reactor.event.selector.Selectors.$; import reactor.core.Environment; import reactor.core.Reactor; import reactor.core.spec.Reactors; import reactor.

我已经开始玩反应堆了,但我的第一个项目有问题:D

在github中,我尝试写一个“hello world”,但没有成功

有什么问题

代码:

package reactor;

import static reactor.event.selector.Selectors.$;
import reactor.core.Environment;
import reactor.core.Reactor;
import reactor.core.spec.Reactors;
import reactor.event.Event;
import reactor.function.Consumer;

public class Main {

    public static void main(String[] args) {

        final Environment env = new Environment();

        final Reactor reactor = Reactors.reactor(env);

        String topic = "event.message";

        reactor.on($(topic), new Consumer<Event<Message>>(){

            @Override
            public void accept(Event<Message> t) {
                System.out.println("Hello World");
            }

        });

        final Message event = new Message();
        reactor.notify(topic, Event.wrap(event));
        System.out.println("ends");
    }

    public static class Message{

    }
}

不要忘记,
Reactor
是一个
反应流
范例的实现,以及
异步
的一切

因此,您的
reactor.notify(主题,Event.wrap(事件))
是在单独的
线程
中为某些
处理程序
发布到
事件路由器
的事件

因此,您的
main
thead应该等待,直到所有下游工作完成

或者添加
Thread.sleep(1000)
在主的and中,或使用CoutDownLatch等待来自该反应器线程的事件(
com.lmax.disruptor.RingBuffer
默认):

final CountDownLatch stopLatch=新的CountDownLatch(1);
关于($(主题),新消费者(){
@凌驾
公共无效接受(事件t){
System.out.println(“你好世界”);
stoplock.countDown();
}
});
....
stoplock.wait();

非常感谢,我认为没有任何配置,这是反应堆的同步版本(我在某处读过)。现在它工作了!
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
ends
final CountDownLatch stopLatch = new CountDownLatch(1);

reactor.on($(topic), new Consumer<Event<Message>>(){

    @Override
    public void accept(Event<Message> t) {
        System.out.println("Hello World");
        stopLatch.countDown();
    }

});
....
stopLatch.await();