使用CDI轻松使用TJWS

使用CDI轻松使用TJWS,cdi,resteasy,tjws,Cdi,Resteasy,Tjws,我尝试使用TJWS可嵌入Servlet容器来使用此用户指南启动RestEasy应用程序 JBOSS7-AS中的应用程序工作正确。我想使用TJWS进行调试和单元测试,但在依赖项注入方面存在问题 我创建了资源类UserResource,它使用CDI注入实用程序类UserManager: @Path(“用户”) @会议范围 类用户资源{ @注入 UserManager UserManager;//简单的界面和实现 public UserResource(){}//没有bean参数的构造函数 @路径(“

我尝试使用TJWS可嵌入Servlet容器来使用此用户指南启动RestEasy应用程序

JBOSS7-AS中的应用程序工作正确。我想使用TJWS进行调试和单元测试,但在依赖项注入方面存在问题

我创建了资源类UserResource,它使用CDI注入实用程序类UserManager:

@Path(“用户”)
@会议范围
类用户资源{
@注入
UserManager UserManager;//简单的界面和实现
public UserResource(){}//没有bean参数的构造函数
@路径(“列表”)
@得到
公开名单(){
List userList=userManager.getList();//NullPointerException
返回用户列表;
}
}
在main中启动TJWS:

publicstaticvoidmain(字符串[]args)引发IOException{
TJWSEmbeddedJaxrsServer tjws=新的TJWSEmbeddedJaxrsServer();
tjws.setPort(9997);
tjws.start();
tjws.getDeployment().getRegistry().addPerRequestResource(User.class);
}
当我尝试获取
http://localhost/users/list
通过浏览器,我在UserResource.list()方法中获得了NullPointerException,因为userManager没有被注入,并且为null


有没有办法注入userManager

TJWS是一个独立的servlet容器和web服务器,不支持@Inject之类的EE注释。要使代码正常工作,您必须使用EE容器,如JBoss as。

如果您手动启动它,可能无法实现某些CDI集成。你看过Arquillian在容器中的测试吗?