如何使用 jersey 服务轮询资源

Posted

技术标签:

【中文标题】如何使用 jersey 服务轮询资源【英文标题】:how to poll a resource using jersey service 【发布时间】:2013-10-03 06:27:32 【问题描述】:

我有一个生成响应的球衣服务。我想要做的是轮询一个资源(在我的例子中,一个单例类实例)以获得成功值,一旦我得到成功值,就执行一些操作

@Path("/generate")
class Generation
    @POST
    @Produces("javax.ws.rs.core.MediaType.TEXT_PLAIN")
    public String generateAndPoll()
        //Generate response
        /*Polling to start

        */
    return someValue;
    

什么是实现这一目标的好方法?计时器有用吗?

【问题讨论】:

您使用的是哪个版本的泽西岛? 仅供参考,@Produces 媒体类型错误。使用常量(不带引号)或使用实际的 mime 类型字符串 "text/plain" 【参考方案1】:

从 Jersey 2.3.1 开始,添加了一项新功能来支持服务器发送的事件。对于您的用例,您可能需要阅读更多内容 Jersey documentation

【讨论】:

我阅读了文档并尝试了 JAXRS2 API 的 AsyncResponse 模块。即使我将 jar 作为 pom.xml 中的依赖项并将 jar 添加到项目中,我也无法找到该模块。该怎么办? 我尝试使用 Timer 类和 scheduleAtFixed rate 方法,这似乎给了我一个错误 405: method not allowed。【参考方案2】:

如果您不介意使用外部库,我已经使用大气几年了,它是一个很棒的服务器推送/彗星实现。它几乎支持任何服务器,是的,它将取决于服务器。它们原生支持长轮询和 websocket。几乎整个服务都可以用几个注释来配置。这是一个如何在球衣 2 服务上使用它的示例。

https://github.com/Atmosphere/atmosphere-samples/blob/master/samples/jersey2-chat/src/main/java/org/atmosphere/samples/chat/jersey/Jersey2Resource.java

【讨论】:

以上是关于如何使用 jersey 服务轮询资源的主要内容,如果未能解决你的问题,请参考以下文章

jersey rest web 服务与 Activemq 中间件集成

使用 Jersey 访问 REST 资源和静态资源

使用 Jersey 通过 RESTfull 服务上传文件和资源配置不可修改?

如何将PNG图像从Jersey REST服务方法返回到浏览器

如何在Java Jersey REST服务中强制使用queryparams?

jersey rest post 访问为http 405 异常如何解决