问题标签 [ratpack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5939 浏览

curl - Nginx 不为“if-modified-since”标头返回 304

我有一个运行 nginx 的服务器,它提供一个用 ratpack 构建的 web 应用程序,当从浏览器或 curl 请求网站时,我无法获得 304 响应。

Nginx 配置:

从浏览器我总是得到 200 ok 和 curl 我得到

我已经尝试了这两个 curl 命令,并且都给出了上述响应:

为什么我在浏览器中得到 302 curl 和 200 ok?我究竟做错了什么?我可以看到浏览器正在使用“If-Modified-Since”标头发出请求。当我重新加载页面资源时,将从浏览器缓存中加载,并且通过硬重新加载所有资源都会得到 200 ok。

0 投票
1 回答
177 浏览

java - 在 Ratpack Handler 中转换 Springboot 控制器类

我无法使用 SpringBoot 应用程序将现有的 REST 控制器转换为 Ratpack 处理程序。

请任何人帮助我完成这项工作。下面是我的控制器类:

0 投票
1 回答
61 浏览

groovy - 使用ratpack如何生成目录列表?

我刚刚开始研究 Ratpack,我最初的用例是作为一个简单的开发服务器。让它服务于静态文件目录(在 Groovy 中)似乎很简单,我解释一下这篇文章:

我看到有一个定义索引页面的选项(例如,index.html),但这是静态的。我希望它像 Apache 一样提供动态目录列表。我希望这只需要启用一个选项,但我找不到任何迹象表明存在这样的事情。

我不禁觉得我错过了什么。谁能指出我正确的方向?

0 投票
2 回答
339 浏览

multithreading - 分析 Ratpack:ExecControllerBindingThreadFactory 高 CPU 使用率和大量线程

我们有一个用 Ratpack 1.5.1 编写的移动应用 API 服务器即将上线,我们目前正在分析应用程序以捕捉任何性能瓶颈。该应用程序由 SQL 数据库支持,我们小心翼翼地始终使用Blocking该类运行查询。代码是用 Kotlin 编写的,我们编写了一些协程胶水代码来强制在 Ratpack 的阻塞线程上执行阻塞操作。

由于 Ratpack 的线程模型是独一无二的,我们想确保这种情况是正常的:我们模拟了应用程序的 2500 个并发用户,我们的线程数上升到 400(甚至在某一时刻甚至 600 个),其中大部分是ratpack-blocking-x-yyy线程。

对 CPU 进行采样,我们得到了该方法所花费的 92% 的时间ratpack.exec.internal.DefaultExecController$ExecControllerBindingThreadFactory.lambda$newThread$0,但这可能是采样的产物。

所以,要问具体的问题:鉴于 Ratpack 的线程模型,高阻塞线程数是否正常,我们是否应该担心上述方法中花费的高 CPU 时间?

0 投票
0 回答
214 浏览

unit-testing - 如何在 Ratpack 单元测试中将表单传递给处理程序

如何在单元测试中将模拟的 Form 对象传递给 Handler?这是我到目前为止得到的参考:

https://ratpack.io/manual/current/testing.html

https://danhyun.github.io/2016-gr8confus-testing-ratpack-apps/

这是我的处理程序的代码:

这是到目前为止的单元测试片段:

0 投票
0 回答
159 浏览

java - 使用 .then 解决 API 调用返回的承诺时,我间歇性地遇到网关超时问题。我该如何避免?

假设我必须对数据库执行插入操作,但在此之前我需要调用一个函数(可能不止一个),该函数使用要插入 DB 的数据访问 url,该函数返回的值指示数据是否为保存在我的应用程序中,有资格插入。

我经常遇到网关超时。如何避免这种情况并确保资格检查操作在插入操作之前完成?

我正在寻找可以在 ratpack+java 应用程序中使用的解决方案

0 投票
0 回答
60 浏览

spring - 带 Ratpack 和执行器的弹簧

我正在使用 Spring 和 Ratpack 构建一些 api,将整个 Spring 引导和云以及 Ratpack 仅用于 http 和异步相关的东西。

我目前的问题是将此堆栈与执行器一起使用。因为因为我正在运行 Ratpack 并禁用了 spring webmvc,所以看起来它也禁用了 Actuator:

这实际上是问题所在,因为如果我将 web 环境设置为 true 并告诉 ratpack 在另一个端口上运行,它可以工作,但我不想为此运行三台服务器,对吧?

谢谢大家的支持!

0 投票
2 回答
405 浏览

ssl - 在 Ratpack 中,如何配置从外部文件加载配置?

我有一个用 Groovy DSL 编写的 Ratpack 应用程序。(嵌入在 Java 中,所以不是脚本。)

我想从命令行选项中提供的配置文件中加载服务器的 SSL 证书。(证书将直接嵌入到配置中,或者可能在配置中某处引用的 PEM 文件中。)

例如:

sslConfig.yml:

我似乎有一个先有鸡还是先有蛋的问题serverConfigSslContext使用serverConfig. 在我要加载 SslContext 时未创建服务器配置。

为了说明,我的 DSL 定义是这样的:

可能有一个解决方案(在稍后的块中加载 SSL 上下文?)

或者可能只是一个更好的方式来处理整个事情..?

0 投票
1 回答
149 浏览

ratpack - 可以在ratpack中的处理程序之间绑定数据,但是一次执行?

我正在开发一个 spring ratpack 项目,但我想知道是否有任何方法可以在处理程序之间绑定数据。我尝试使用注册表,但找不到对象仅在一次执行中具有值的方式。我尝试使用 ratpack 会话,但我不想生成会话 cookie 来将该对象持久保存到我的处理程序上。我应该怎么办?我现在迷路了。

这是我的代码配置和持久化对象的方式:

0 投票
1 回答
1600 浏览

java - Redisson 尝试连接到内部 redis IP 而不是配置中指定的浮动 redis IP

我正在使用带有ratpack的redisson。下面是我为 redisson 设置的配置。

我在配置中添加了所有主从 IP 作为节点地址,上面添加的 IP 是浮动 IP。Redisson 能够与除一个主节点之外的所有节点建立连接。但是,相同的错误消息显示主节点的内部 IP,而不是我在 redisson 配置中添加的浮动 IP。我得到的错误信息如下

紧随其后的是 RedisConnectionException:

非常感谢您对此事的任何见解。