java - 防止 Controller 响应

标签 java spring spring-boot

我正在使用 Spring Boot 来模拟我们的一项更复杂的服务。虽然所有标准情况都很容易完成,但有一个情况给我带来了一些麻烦。理论上,我正在模拟的应用程序有可能崩溃并关闭连接而不发送响应。

我尝试了几种方法来在 Spring Boot 中实现这一目标,但实际上并没有让我的模拟崩溃。这包括抛出进入异常处理程序的异常,并且从那里无法正确响应,但是到目前为止,要么由 spring 生成错误响应,要么以某种方式解析为空响应。

是否可以选择在 @Conroller 中使用方法来导致关闭连接而没有任何响应?

最佳答案

关闭连接是HTTP规范和协议(protocol)的责任。您无法以编程方式强制执行它。 HTTP 客户端和 HTTP 服务器之间正在进行连接协商。

虽然您可以尝试中断当前线程或设置 header Connection: close,但您不应该搞乱连接和请求处理的这一部分。您的 HTTP 服务器可能会开始出现异常行为。

尝试不同的方法。如果您需要模拟关闭的连接,您可以以编程方式分配一个新的 HTTP 服务器实例,向其发送请求,暂停请求处理并终止实例(这是一个单独的线程)。我相信您会找到更好的方法,只需从不同的角度找到问题的根源即可。

关于java - 防止 Controller 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50043679/

相关文章:

java - 无法在 ActiveMQ 使用者中使用 XPath 选择器

spring - 将依赖项注入(inject)到您的单例中

java - Spring MVC - 在构造函数内重定向

java - 查询参数值不绑定(bind)到 Spring Pageable

JMS 的 Spring Tomcat 配置(IBM MQ、Tomcat、Spring)

java - 在不获取 "Suspicious sign in prevented"的情况下发送电子邮件的替代方法

java - FXML - .fxml 文件中定义的多个自定义类型对象

java - 为什么我无法像 Google Analytics Android 示例代码中那样导入 Tracker 类?

java - Spring运行时错误,没有为实体指定标识符:

java - 如何在 Spring Boot 应用程序中排除给定运行时配置文件中的包