为什么泽西岛提供过时的数据?

Why is Jersey providing outdated data?

我的提供程序中有 List 个对象 class:

List<Workspace> workspaces = new ArrayList<Workspace>();

我有一个方法可以在 JSON:

中提供这个工作区列表
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Workspace> workspaces() {
    return workspaces;
}

这确实有效。我有另一种方法可以像这样更新 List

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public List<Workspace> create(Workspace workspace) {
    workspaces.add(workspace);
    return workspaces;
}

这也有效:它 returns 工作区的完整列表,包括刚传入的工作区。

问题是,当我再次使用第一种方法 GET 资源时,我 POST 使用第二种方法编辑的任何新项目都不存在了。我看到的唯一项目是由提供者 class 的构造函数添加的。我怎样才能保存这些数据?

可能是您的 POST 调用在不同的 bean 上运行。这些豆子是单例的吗?尝试在每次调用中打印 'this' 指针。