我构建了一个rest api,以使用Atmosphere-Jersey模块实现发布者/订阅者模式。当我使用curl测试此api时,它可以按预期工作,但是当使用jersey-client或post man测试时,它不起作用并且没有显示任何响应。
MyResource.Java
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.atmosphere.annotation.Broadcast;
import org.atmosphere.annotation.Suspend;
import org.atmosphere.cpr.Broadcaster;
import org.atmosphere.jersey.Broadcastable;
@Path("/api")
public class MyResource {
@Suspend
@GET
@Path("/{topic}")
@Produces(MediaType.APPLICATION_JSON)
public Broadcastable subscribe(@PathParam("topic") Broadcaster topic) {
return new Broadcastable(new Message(), topic);
}
@GET
@Path("/{topic}/{message}")
@Produces(MediaType.APPLICATION_JSON)
@Broadcast
public Broadcastable publish(@PathParam("topic") Broadcaster topic, @PathParam("message") String message) {
return new Broadcastable(new Message(message), topic);
}
}