使用 Java 和观察者模式使用 Jersey 的 RESTful Web 服务

2024-03-17

我正在尝试为学校项目实现一个 n 层架构应用程序。 客户端和服务器之间的通信是通过 RESTful Web 服务完成的。 我用了Jersey来实现这一点Java。我唯一的问题是,如何register服务器上的客户端接收更改通知(就像通常使用观察者模式或监听/发布模式所做的那样)。我是否还需要在客户端实现一个服务,然后注册服务器要调用的 URL,然后在发生更改时调用这些 URL?

感谢您的帮助!


通常,在基于 http 的客户端服务器方案,服务器总是响应请求。如果没有客户端请求,服务器无法发送任何内容(通知)。但有些用例是服务器在没有客户端请求的情况下将数据推送到客户端,因此服务器推送 http://en.wikipedia.org/wiki/Push_technology出现在画面中。

Jersey提供服务器推送的形式服务器发送的事件 (SSE) https://jersey.java.net/documentation/latest/sse.html。文件说,

服务器发送事件(SSE)是一种允许服务器 异步将数据从服务器推送到客户端 客户端与服务器的连接由客户端建立

请注意,客户端需要与服务器建立连接first。您可以将第一个客户端请求称为注册。一旦建立连接,服务器就可以向客户端发送/推送数据。链接的提及还有一个工作示例以及。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Java 和观察者模式使用 Jersey 的 RESTful Web 服务 的相关文章

  • WCF 服务引用从 WSDL 生成 void 方法

    这是我第一次尝试使用 WCF 所以我猜我做错了什么 我正在尝试访问 WSDL 定义的肥皂服务http confluence atlassian com rpc soap axis confluenceservice v1 wsdl http
  • 在 Postman 中连接 ECONNREFUSED

    我试图通过邮递员测试我的 REST API 但收到以下错误 这是我编写的第一个 REST API 我对邮差很陌生 所以不确定我做错了什么 下面是我尝试使用此 URL 在邮递员中调用的代码 我在 URL 中传递两个日期参数 https loc
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • 如何处理 REST api 中的 php 通知、警告和错误?

    在 REST API 中 200 响应表明操作成功 PHP 默认情况下直接在响应正文中输出错误消息 而不更改响应代码 在 SPA 中 用户无法直接看到响应文本 因此 当应用程序未按预期工作时 我通过 FireBug 检查响应正文 以检查可能
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 如何在 javadoc 中使用“<”和“>”而不进行格式化?

    如果我写
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • npm install 上出现 ENOTDIR 错误(节点 4 上的 npm 3。我知道:旧版。抱歉 :( )

    首先 我很抱歉在这里报告 npm3 的问题 但看起来旧的存储库当前处于只读模式 我们有一个又大又旧的 AngularJS 前端应用程序 它需要 Node4 并使用 npm3 几天前 有人执行 npm install 时出现了一个问题 err
  • Python doctest:跳过整个块?

    我有一个在类方法中包含文档字符串的 Python 模块 以及模块文档字符串中的一个真实示例 区别在于方法文档字符串经过精心设计 成为完全可重复的测试 而现实世界的示例只是 Linux shell 历史记录的复制粘贴 它碰巧调用了 pytho
  • Apache JMeter 的 Cookie 管理器未将 cookie 添加到 POST 请求

    我制定了非常简单的测试计划 登录 POST 返回会话cookie 获取状态 GET 返回用户状态 创建资源 POST 为资源提供 JSON 正文 所以我的 测试计划 如下所示 Test Plan Thread Group HTTP 请求默认
  • $_SESSION 设置为有效登录后 isset() 不起作用

    我有这个 loginform php 和这部分代码 这是从带有登录表单的 index php 调用的 include config php if isset POST submit username POST username passwo
  • UIViewControllerHierarchyInconsistency 仅在 iOS 8 和 Xcode 6 中导致应用程序崩溃

    我有一个在 iOS 7 和 Xcode 5 中运行良好的应用程序 当我将其更新到 iOS 8 和 Xcode 6 时 当点击文本字段时应用程序尝试在视图中向上滑动 UIDatePicker 时 它会崩溃 我正在使用故事板 有人知道为什么吗
  • C++ 中的等效 LinkedHashmap?

    我有一个 Java 程序 我想将其转换为 C 所以 有一个LinkedhashmapJava代码中使用的数据结构 我想将其转换为C 是否有等效的数据类型LinkedHashmap in C 我尝试使用std unordered map但是
  • 使用 NumPy reduceat 计算基于组的平均值

    import numpy as np import pandas as pd dummies np array pd get dummies list abdccadab categorical IV groupIDs np array 1
  • Protractor 和 Cucumber:使用 async/await 函数超时

    我正在使用 Angular 5 Protractor 和 Cucumber 进行 e2e 和 bdd 测试 当我在终端上运行时ng e2e我收到以下错误 当我打开页面 e2e steps home steps ts 15 错误 函数超时 确
  • 带 SwiftUI 的旋钮

    因此 我尝试使用旋钮复制正常的 SwiftUI 滑块功能 我已经对 UI 进行了编码 并且当前已连接到标准 SwiftUI 滑块以便旋转它 现在我需要添加其余的滑块功能 即 value range stride 和触摸功能 即上下左右拖动时
  • 作为安装过程的一部分,如何让 WiX 调用 .NET 程序集中的方法?

    我正在迁移一些现有产品以使用 WiX 3 5 我正在使用 Votive VS 集成 我正在安装的一些项目需要向第三方框架注册 要求是我必须在第三方 NET 程序集中调用 Register 方法来通知它我正在安装的项目是否存在 它需要一个 C
  • 如何在 Chapel 中附加稀疏域

    我正在使用读取 CSV 的循环填充 Chapel 中的稀疏数组 我想知道最好的模式是什么 var dnsDom 1 n dims 1 n dims var spsDom sparse subdomain dnsDom for line in
  • Tomcat 应用程序没有响应且没有日志

    我已经配置apache将请求转发到tomcat 以下是我的配置
  • VBA - 如何将 Excel 中的行从一个工作簿复制到另一个工作簿?

    尽管我浏览了许多与我的问题相同的帖子 但没有一个答案满足我的需求 如果您能给我链接 我很乐意阅读 我有一本带有工作表的工作簿 为简单起见 假设我的工作簿有一个工作表 在我的工作表 Sheet1 中 单元格 A1 到 A4 中有数据 我想要我
  • 无效的工会成员

    Visual Studio 中有没有一种方法可以处理非平凡的联合 以下代码运行良好g std c 11但 VS 抱怨 无效的联合成员 类 Foo 具有不允许的成员函数 代码如下 struct Foo int value Foo int in
  • 无法从 NSString 转换为 NSDate

    我无法将 NSString 转换为 NSDate 这是代码 NSDate stringToNSDate NSString dateString NSDateFormatter setDefaultFormatterBehavior NSDa
  • 将精灵旋转到鼠标位置

    我一直在使用 SFML 1 6 库 我想知道 如何旋转精灵 使其始终转向鼠标在屏幕上的位置 Thanks SFML具体代码优先 如果你有精灵的位置 S Sx Sy 和光标的位置 C Cx Cy You can calculate the a
  • mySQL 查找重复项并删除它们

    我想知道是否有一种方法可以通过一个查询来完成此操作 似乎当我最初用虚拟数据填充数据库以处理 10k 条记录时 在混乱的某个地方 所有脚本转储了额外的 1 044 行 其中行是重复的 我用以下方法确定了这一点 SELECT x ID x fi
  • Win10 64位上CUDA 12的PyTorch安装

    我需要在我的 PC 上安装 PyTorch 其 CUDA 版本 12 0 pytorch 2 的表 https i stack imgur com X13oS png in In 火炬网站 https pytorch org get sta
  • 命令源禁用和启用

    我阅读了有关 WPF 命令的所有内容 并且了解 GoF 命令模式 但仍然认为 我对这个过程有一个问题 命令目标 例如文本框 如何告诉命令源 例如按钮 它有更改状态 例如 插入文本框中的某些文本 以便源可以禁用或启用自身或执行其希望执行的任何
  • 使用 Java 和观察者模式使用 Jersey 的 RESTful Web 服务

    我正在尝试为学校项目实现一个 n 层架构应用程序 客户端和服务器之间的通信是通过 RESTful Web 服务完成的 我用了Jersey来实现这一点Java 我唯一的问题是 如何register服务器上的客户端接收更改通知 就像通常使用观察