问题标签 [undertow]

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 回答
456 浏览

utf-8 - 有没有办法在 Clojure 中强制对 Immutant 2/Undertow 进行字符编码?

有没有办法在 Clojure 中强制对 Immutant 2/Undertow 进行字符编码?我将 Immutant 2 (2.0.0-alpha2) 用于我的 Web 应用程序,该应用程序以 UTF-8 提供日语网页,尽管该应用程序在 Eclipse 上的 REPL 中运行得非常好,但 Immutant 2 将 HTTP 响应主体转换为 Shift_JIS,在我将应用程序转换为 uberjar 后,我的 Windows 设置中的非 Unicode 应用程序的默认字符编码。

我强烈怀疑这是 Immutant 2/Undertow 中的错误,因为在响应标头中指定了 UTF-8,而 Jetty 和 HTTP Kit 从未发生过此问题。在这一点上,我将不胜感激任何指示,因为我今天花了一整天的时间在这个问题上,我几乎准备放弃 Immutant 2 并回到 HTTP Kit。

0 投票
1 回答
4111 浏览

java - 为 undertow 服务器设置工作线程

我正在尝试优化 undertow 服务器,我想尝试为我的 HttpListener 设置 I/O 线程(WORKER_IO_THREADS 和 WORKER_TASK_CORE_THREADS)。你能帮我完成所需的步骤吗?

我确实读到需要配置与侦听器关联的 XNIO 工作者。但是我不清楚如何去做。

0 投票
1 回答
1718 浏览

jakarta-ee - Undertow:发送的 cookie 数量超过了 200 的最大值,可能是服务器攻击?

我刚刚在我的服务器日志中发现了一个似乎不是由使用我的Java EE7应用程序的员工触发的异常。这发生在Wildfly-8.1.0.Final安装上。
它说Exception handling request to /manager/html/upload: java.lang.IllegalStateException: UT000046: The number of cookies sent exceeded the maximum of 200,但日志说当时没有登录用户。此外,甚至不存在资源/manager/html/upload

我通过 注册了许多自动闯入尝试sshd,这是否也是由机器人试图暴力破解可能的后端引起的?

这会影响正常的应用程序使用吗?有没有办法防止此类错误?

这是完整的堆栈跟踪:

0 投票
0 回答
278 浏览

java - 如何为从反射加载的 Resteasy 资源提供构造函数参数?

我将 Undertow 作为一个简单的 Servlet 容器运行。我部署了 Resteasy servlet:

此代码基于本教程此代码

如何为 Resteasy 内部部署的资源提供任何构造参数?

我看到使用静态字段的教程,但我想保持依赖倒置以便于测试。在 Servlet 世界中,正确的做法是将所有内容放在上下文中。

0 投票
1 回答
1395 浏览

java - 运行“空”Undertow 时每秒 HTTP 请求的限制因素是什么?

我正在运行一个非常简单的 Undertow 配置。整个代码包括:

我尝试测试每秒可以处理多少个请求。我正在使用 apacheab工具进行测量:

我设法获得的最大数字约为 10000 3/秒:

我知道它很大,但我很好奇在这种情况下什么是限制因素。它不是处理器(使用 Java Mission Control 采样时应用程序运行低于 20%),也不是内存。我在 Windows 上运行它 - 也许这就是原因?

0 投票
1 回答
2621 浏览

spring-mvc - 在 Wildfly 中,"/" 被重写为 "/index.html",绕过了 RequestMapping("/")

我正在将 Spring MVC 应用程序从 JBoss 7.1.1 迁移到 Wildfly 8.1,这需要(鼓励?)我使用新的“undertow”模块而不是旧的“web”模块。事情正在顺利进行,除了现在对“ /”的请求,它用于调用带有注释的控制器方法@RequestMapping("/"),不再到达控制器方法。相反,这些请求似乎被立即重写(而不是重定向)到“ /index.html”。由于我没有(也从来不需要)这样的文件,所有对“ /”的请求现在都产生 404 错误。

有趣的是,所有其他 @RequestMapping带注释的控制器方法都继续正常运行。

这是我standalone.xml文件中的相关片段。

我怀疑当subsystemWildfly 的 undertow 模块的定义没有明确声明 ahandler时,Wildfly 默认为一个file处理程序,它可能负责 URL 重写——但我不确定这一点。

Wildfly 的 undertow 模块所基于的 Undertow 项目中有关处理程序的文档表明支持“重定向”处理程序。我曾考虑使用它来解决意外的“/”重写,但我不清楚 Wildfly 的 undertow 模块是否支持这一点,如果支持,如何在standalone.xml. 然而,即使我能够做到,我认为它会感觉像是一个 hack,我更愿意找到问题的根源(不是双关语)。

有许多 SO 问题描述了令人失望的RequestMapping("/")行为,许多答案建议使用其他路径(例如"","/index"等),但不要忘记:现有(未更改)代码在 JBoss 7.1.1 中运行良好。(此外,这些问题都没有提到 Wildfly,这可能是这个问题的关键考虑因素。)尽管如此,我尝试了各种建议,但一无所获。看起来 URL 在到达调度程序 servlet 之前就被重写了。

所以,总而言之,我的问题是:

如何RequestMapping("/")像在 JBoss 7.1.1 中一样让 Spring MVC 应用程序在 Wildfly 8.1 中运行?

0 投票
1 回答
757 浏览

java - 使用 Undertow 的基于文本的处理程序配置格式的示例

根据规范,Undertow 有一个不错的基于文本的配置。

但是,我没有看到一行示例代码如何使用这种配置启动 Undertow。

如何使用Undertow.builder()...文本配置构建 Undertow 服务器。

我正在尝试做类似的事情

0 投票
1 回答
7965 浏览

wildfly - 如果不接受 cookie,配置 WildFly/Undertow 以将 JSESSIONID 放在 URL 上

我们以前使用 JBoss 7.1.2 并利用 JSESSIONID 放在 URL 上的行为作为不接受 cookie 或请求中不存在 JSESSIONID cookie 的后备。

迁移到 WildFly 8.2.0 / Undertow 1.1.0 后,此 URL 重写不会发生。

是否可以配置 WildFly/Undertow 以将 JSESSIONID 放在 URL 上作为后备?我们知道将 session-config 放入的可能性web.xml,例如:

但我们只希望 URL 上的 JSESSIONID 作为后备解决方案。

0 投票
1 回答
3888 浏览

spring-mvc - SpringBoot Undertow:如何调度到工作线程

我目前正在查看springboot undertow,并且(对我来说)如何将传入的http请求分派给工作线程以进行阻塞操作处理还不是很清楚。

查看UndertowEmbeddedServletContainer.class类,看起来没有这种行为,因为唯一的 HttpHandler 是允许 @Controller 配置的 ServletHandler

默认情况下,所有请求都由 IO-Thread 处理以进行非阻塞操作。这是否意味着每个@Controller 执行都将由非阻塞线程处理?或者是否有从 IO-THREAD 或 WORKER-THREAD 中选择的解决方案?

我尝试编写一个解决方法,但是这段代码非常难看,也许有人有更好的解决方案:

BlockingHandler.class

UndertowInitializer.class

UndertowHandlerPostProcessor.class

覆盖 UndertowEmbeddedServletContainerFactory.class

覆盖 UndertowEmbeddedServletContainer.class

将初始化程序设置为应用程序上下文

最后创建一个分派到工作线程的 HttpHandler

}

正如你所看到的,我的“解决方案”真的很重,我真的很感激任何帮助来简化它。

谢谢

0 投票
0 回答
2065 浏览

java - 覆盖 Wildfly 8 中的默认 servlet-container

我的 Wildfly 设置中有多个虚拟主机,但我无法让它们使用自定义 servlet 容器,而是全部使用默认容器。我特别需要这样做来自定义会话cookie,以便各个站点在各自的端口上工作,而不会破坏其他人的会话。

独立的.xml:

相应的 jboss-web.xml 文件具有以下内容:

既没有指定 server 标记的 servlet-container 属性,也没有在 jboss-web.xml 中指定 servlet-container 标记似乎有任何效果,并且始终使用默认的 servlet 容器。

有什么我想念的吗?或者在某个地方是否存在阻止 servlet 容器成为默认容器的错误?