java - react 堆,无法加载类 "org.slf4j.impl.StaticLoggerBinder"

标签 java reactor project-reactor

我已经开始使用 Reactor,但我的第一个 Activity 遇到了麻烦:D

遵循example在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{

    }
}

输出:

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

最佳答案

不要忘记,ReactorReactive Streams 范例的实现,并且所有内容都是异步

因此,您的 reactor.notify(topic, Event.wrap(event)); 是一个为某些 handler 发布到 EventRouter 的事件> 在单独的线程内。

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

或者在 main 中添加 Thread.sleep(1000); 或使用 CoutDownLatch 等待来自该 Reactor 线程的事件( com.lmax.disruptor.RingBuffer 默认情况下):

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

关于java - react 堆,无法加载类 "org.slf4j.impl.StaticLoggerBinder",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25823162/

相关文章:

Java 泛化类引用

java - 当发布者线程数远高于消费者数时,Spring Reactor 会受益

c++ - 奇怪的 poco react 器的通知

java - 如何等待所有一次性元素完成?

java - Spring Reactive - 重用Mono值

spring-boot - Spring WebClient 作为 RestTemplate 的替代品

java - servlet容器和spring容器有什么区别?

java - 为tomcat配置apache网桥

java - 如何将 alfresco jlan 文件服务器设置为独立的 java 包?

java - 使用 Project Reactor 递归 react 流