如何使用 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 通过 RESTfull 服务上传文件和资源配置不可修改?
如何将PNG图像从Jersey REST服务方法返回到浏览器