Java 尝试在jax-rs提供程序中注入cdi

Java 尝试在jax-rs提供程序中注入cdi,java,jax-rs,cdi,java-7,wildfly-10,Java,Jax Rs,Cdi,Java 7,Wildfly 10,当我试图获取一个定制的TransformerBean,将传入的数据执行到我需要的表单中时,我遇到了wildfly 10的问题。我声明自定义@Provider @Provider @Dependent @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public class BaseProvider<T extends Base> implements MessageBodyRead

当我试图获取一个定制的TransformerBean,将传入的数据执行到我需要的表单中时,我遇到了wildfly 10的问题。我声明自定义@Provider

@Provider
@Dependent
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class BaseProvider<T extends Base> implements MessageBodyReader<T>, MessageBodyWriter<T> {

   @Inject
   private ModelTransformer<T, String> modelTransformer;

...
@Provider
@依赖的
@使用(MediaType.APPLICATION_JSON)
@产生(MediaType.APPLICATION_JSON)
公共类BaseProvider实现MessageBodyReader、MessageBodyWriter{
@注入
专用模型变压器;
...
这就是提供程序。在wildfly中,我必须指定@Dependent,因为类是参数化的(泛型),但在glassfish 4中,例如,我不必这样做

问题是modelTransformer为null。我没有遇到任何部署问题,但在运行时遇到了NullPointerException

这是我期望注入的ModelTransformer实现

@Dependent
public class GsonModelTransformerImpl<T extends Base> implements ModelTransformer<T, String> {
    private Gson gson;

    ...// Specific impl of the interface that uses gson to do some stuff
依赖于 公共类GsonModelTransformerImpl实现ModelTransformer{ 私人Gson; …//使用gson执行某些操作的接口的特定impl 我不明白我做错了什么,但这段代码在GlassFish4上运行,在wildfly 10上无法运行

我可以提供更多细节,也许我遗漏了什么


谢谢!

你是如何包装你的应用程序的?WAR?EAR?你的
beans.xml
是什么样子的?我的应用程序是WAR,bean在src/main/resources/META-INF/beans.xml中。内容如下:WildFly 10.0或10.1?如果是10.0,你能试试10.1吗?我在使用openshift,它有WildFly 10。我在8.2.1-Final上试过我也得到了同样的结果。