【发布时间】:2012-06-15 14:42:21
【问题描述】:
我有一个返回 json 的 jax-rs Web 服务,我想向它添加 cors 标头。
所以我有以下课程:
[...]
import javax.enterprise.context.RequestScoped;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.Path;
[...]
@Stateful
@Path("/grupo")
@RequestScoped
@TransactionAttribute
public class GrupoEndpoint
{
@Context
private HttpServletResponse response;
@GET
public List<Grupo> listAll()
{
@SuppressWarnings("unchecked")
final List<Grupo> results = em.createQuery("SELECT x FROM Grupo x").getResultList();
// here response is null!!!
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
return results;
}
但是响应总是空的,我可能会遗漏什么吗?
【问题讨论】:
-
不确定这是否是您的问题的原因,但是将您的类注释为带有 RequestScoped 的 CDI bean 和带有 Stateful 注释的 EJB 绝不是一个好主意...如果您的类不包含任何其他有状态属性,我建议将其标记为无状态,并删除 RequestScoped 注释
标签: web-services jakarta-ee dependency-injection jax-rs cdi