生产者未用于位于 jar 中的 class

Producer not being used for a class located in a jar

我有以下设置

 - tokenmanager.jar
    - SecurityService.class
    - MyService.class (@Inject SecurityService)
    - META-INF
        - beans.xml

 - MyApplication.war
     - SecurityServiceProducer.class
     - WEB-INF
        - beans.xml
        - web.xml
     - lib
         - tokenmanager.jar

这个想法是,应用程序可以决定 SecurityService 如何组成并注入到令牌管理器的 类 中。所以 tokenmanager.jar 可以被多个团队使用,并注入他们自己的依赖项。但是,启动时从不使用 SecurityServiceProducer。我正在使用 liberty 20.0.0.x 作为服务器环境(附加说明在 WAS 8.5.5.9 上一切仍然需要 运行)。出于这个原因,我仍然被迫使用 beans 1.0

beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">

</beans>

制作人

import javax.inject.Inject;
import javax.ws.rs.Produces;

public class SecurityServiceProducer {

    @Inject
    @RedisTokenStoreQualifier
    private TokenStoreDao tokenStoreDao;

    @Inject
    @AdfsIdentityProviderServiceQualifier
    private IdentityProviderService identityProviderService;

    @Inject
    private SecurityServiceFactory securityServiceFactory;

    @Produces
    public SecurityService producer() {
        return securityServiceFactory.produce(tokenStoreDao, identityProviderService);
    }
}

我已经尝试了几个步骤

任何人都可以指出我忽略的其他事情吗?

对于 @Produces 注释,您使用的是 javax.ws.rs.Produces 而不是 javax.enterprise.inject.Produces