struts2 异步操作

2024-04-03

希望使用带有 Serlvet 3.0 异步支持的 Struts2。

我的第一个方法是只处理写入操作中的输出流并返回 null。然而,这会返回 404“资源不可用”。我试图在 struts 操作中调整 Bosh servlet,使用 ServletRequestAware、ServletResponseAware 接口来注入响应。

我正在使用 struts 过滤器调度程序。不完全确定这是否可行,但如果其他人设法在 struts 操作中实现异步工作,我肯定会很高兴。也许这里有一个 AsyncResult 类型或其他魔法来完成这项工作。


确保 struts 过滤器允许异步。 web.xml 文件中的内容如下:

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
    <async-supported>true</async-supported>
</filter>

然后从 Action 中获取HttpServletRequest and HttpServletResponse并使用AsyncContext就像在 servlet 中一样:

public String execute() {
  HttpServletRequest req = ServletActionContext.getRequest();
  HttpServletResponse res = ServletActionContext.getResponse();

  final AsyncContext asyncContext = req.startAsync(req, res);
  asyncContext.start(new Runnable() {
    @Override
    public void run() {
      try {
        // doing some work asynchronously ...
      }
      finally {
        asyncContext.complete();
      }
    }
  });

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

struts2 异步操作 的相关文章

随机推荐

  • __init__() 收到意外的关键字参数“attrs”

    形式 py class ImportExcelForm Form file forms FileField attrs class rounded list 我正在尝试将 css 类添加到我的filefield在表单中 我收到此错误 ini
  • 围绕可变高度的 div 画一个完美的圆

    我已经对此进行了相当多的研究 但似乎找不到一个好的 可靠的答案来找到如何制作响应圈围绕可变高度的 div 元素 使用以下命令可以轻松制作简单的响应式圆圈vw units div style height 20vw width 20vw di
  • Asp.net Web Api 流

    我一直在尝试将文件流式传输到我的网络服务 在我的控制器 ApiController 中 我有一个 Post 函数 如下所示 public void Post Stream stream if stream null stream Lengt
  • JVM 退出代码 1073807364 的原因是什么?

    我构建了一个基于 RCP 的应用程序 我的一位用户在 Windows XP Sun JVM 1 6 0 12 上运行时 应用程序完全崩溃了 应用程序运行两天后 这不是新版本或其他任何东西 他得到了漂亮的灰色 JVM 强制退出框 退出代码 1
  • JAX RS,我的过滤器不起作用

    我的工作是 使用 JAX RS 和 Jersey 进行基于 REST 令牌的身份验证的最佳实践 https stackoverflow com questions 26777083 best practice for rest token
  • 开发 Excel Addin 时释放 COM?

    我知道在使用互操作时应该释放 COM 对象 开发和加载项 例如 Excel 时情况是否有点不同 这是我的一个循环 我很好奇是否Marshal ReleaseComObject是必要的 foreach var sheet in results
  • Regex / Preg:如果找到则不匹配

    我正在尝试做一些 PHP preg 但如果我想要一个没有任何东西的字符串 我似乎无法让它匹配 Example Hello My name is b Peter Jack b 如果找到 Peter Jack 的姓氏 则它将不匹配 但如果找到
  • 如何在 iOS 上发送短信而不需要用户同意?

    如何从 iOS 应用程序向某人发送文本消息 本地或通过使用 API 而无需他们事先与消息交互 该消息将被预先编写并通过点击屏幕发送 如果用户需要一次就可以了 但我需要一种发送消息的方法 而不必让用户每次都与他们的设备交互 例子 手机关机 我
  • 将值分配给 pandas 数据框值以获取另一列中的唯一值

    我有以下数据框 df pd DataFrame marks 40 60 90 20 100 10 30 70 students Jack Jack Jack Jack John John John John marks students 0
  • 如何使用 Python 从文本文件中绘制数据

    我有一个文本文件 其中包含来自连接到树莓派的传感器的近 50k 行数据 它看起来像这样 2014 07 16 15 57 35 536579 128 251 254 255 30 062 2014 07 16 15 57 37 763030
  • 在 Google Play 上发布新的生产版本而不影响 Beta 版

    我在 Google Play 商店中有一个生产应用程序 我还使用 Google Play 测试版功能向有限的群体发布了测试版 但是 如果我对生产应用程序进行更改 则需要重新构建并重新发布测试版应用程序 因为它会被新的生产版本覆盖 当我想在生
  • Jest TypeError:不是 Jest.mock 中的构造函数

    我正在尝试使用 jest 编写一个单元测试用例 并且需要模拟以下模式 我收到 TypeError 不是构造函数 用例 我的用例如下所述 我的组件 js import serviceRegistry from external service
  • 在 Windows 上运行在 Cygwin 中编译的 C++ 可执行文件

    The Idea我在 Cygwin 上使用 G 编译了一个 C exe 我希望能够通过 PHP 将该 exe 的输出放入我的 HTML 中 也就是说 假设我有一个 C 可执行文件 test exe 它输出 Hello World 运行时 那
  • 如何在自托管环境中对 ASP.NET Core 中的静态内容进行 gzip

    使用自托管环境发布 ASP NET Core 网站时 是否有方法提供 gzip 静态内容 编辑2016 11 13 还有另一种方式来提供 gzip 压缩文件来替代步骤 2 和 3 它基本上是相同的想法 但是有一个 nugetpackage
  • Jackson ObjectMapper:日期序列化和反序列化问题

    我想禁用宽松选项中Jackson Deserializer严格反序列化日期字段 基本上 我希望下面的代码抛出异常而不是 解析33 Aug 2016 as 02 Sep 2016 1 订单 java package com test date
  • 如何在项目中任意ViewController中全局访问Class中的数据

    我是斯威夫特的新手 目标 访问全球数据 如何使用Swift实现全局临时存储 使用下面的类来存储数据 In C 1 我使用具有静态属性的类 Class TransactionData public static DateTime dateTi
  • Python 2.7 - ttk 模块似乎无法在 Windows 8.1 中工作

    我的应用程序的 GUI 是Tkinter基于并且它非常实用 我一直在尝试使用 ttk 让它看起来更现代 我用Python 2 7在 Windows 8 1 中 输入ttk没有错误和编码 包括ttk在脚本中运行没有错误 然而 生成的界面看起来
  • android:删除ldpi/mdpi文件夹的陷阱

    我想知道删除我的 android 项目上的 ldpi mdpi hdpi 文件夹有什么陷阱 我可以只复制可绘制文件夹中的所有图像吗 我确实看到了以下关于 android UI 开发的链接http developer android com
  • SSL 套接字连接超时

    如何在 Java 中配置 SSL 套接字的连接超时 对于普通套接字 我可以简单地创建新的套接字实例 而无需使用任何目标端点new Socket 然后调用连接 SocketAddress端点 int超时 http download oracl
  • struts2 异步操作

    希望使用带有 Serlvet 3 0 异步支持的 Struts2 我的第一个方法是只处理写入操作中的输出流并返回 null 然而 这会返回 404 资源不可用 我试图在 struts 操作中调整 Bosh servlet 使用 Servle