我试图使用CDI和Restful一起构建一个项目(从CDI bean发布Restful服务),但是我找不到解决方法。
有人知道没有EJB如何可以一起工作吗?
最佳答案
谈到Restful,我想您的意思是Jax-RS。采取以下代码:
UserResource.java
此类实现RESTful API,该API访问用例GetUser并返回其结果。
@Path("users")
@ApplicationScoped
public class UserResource {
@Inject
private GetUser getUser;
@GET
public Response getUser(@QueryParam("userId") String userId) {
return UserRepresentationMapper.toRepresentation(getUser.getUser(userId);
}
}
GetUser.java
GetUser用例使用一些依赖项(这里是UserService)来获取其数据并对其进行处理。
@ApplicationScoped
public class GetUser {
@Inject
private UserService userService;
public ApplicationUser getUser(String userId) {
// ...
}
}
并且在
beans.xml
(jar)或META-INF
(war)目录中有一个WEB-INF
来激活CDI(JEE6,使用JEE7时不需要beans.xml
,并且所有类都用bean defining annotations注释)。关于java - 结合使用Restful和CDI的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31279315/