Java 带有 CDI 和 Web 服务的 EE NullPointerException

Java EE NullPointerException with CDI and web service

我正在尝试实现一个演示 Web 服务,但我在 CDI 方面遇到了困难。我想将 FooFinder 注入 FooBooker,但我得到的是 null(在调用 FooResponse 期间出现 NullPointerException,因为 fooFinder 为空)。

我有接口

@RequestScoped
@Named
public interface FooFinder {

    FooResponse getReply(String origin, String destination);
}

一样实施
@RequestScoped
@Named
public class MockedFoo implements FooFinder {

    @Override
    public FooResponse getReply(String origin, String destination) {
        String s = "SuperFoo";
        Double d = 123.45;
    return new FooResponse(origin, destination, s, d);
    }
}

在网络服务中

@WebService
public class FooBooker {
    @Inject
    FooFinder fooFinder;

    @WebMethod
    public FooResponse getReply(String origin, String destination) {
        return fooFinder.getReply(origin, destination);
    }

    public static void main(String[] argv) {
        Object implementor = new FooBooker();
        String address = "http://localhost:9000/FooBooker";
        Endpoint.publish(address, implementor);
    }
}

原来是 CDI 库设置有问题。我正在使用 IntelliJ IDEA,并且在 GlassFish 配置对话框中启用了 CDI 支持。

然而,直到我在模块配置中添加 CDI 支持后,注入才起作用。