问题标签 [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 回答
13360 浏览

java - Wildfly Undertow 请求在 Web 服务上失败 HttpServerExchange

我正在尝试访问在我的 Wildfly 实例上运行的 Web 服务。Web 服务被注释为 Post 并接受 JSON。当我尝试调用该服务时,我的 Wildfly 会引发 Nullpointerexception。

实际的堆栈跟踪如下所示:

我真的不明白是什么引起了 Nullpointerexception,因为我对 Wildfly 开发不是很熟悉。

0 投票
1 回答
939 浏览

java - 在 Undertow 上关闭 MYSQL 连接

我有以下代码从 Undertow 连接到远程 MYSQL 服务器。

Undertow 服务器运行一段时间后,我收到以下错误:

我想知道如何继续关闭与

  1. mysql数据源
  2. 联系
  3. 陈述

应用程序有频繁的读取请求(每秒 10000 次读取请求)我应该如何继续?

我想mysql.getConnection().close();在设置交换标头之前使用权利,但需要确保更改生产系统上的代码。

谢谢!

0 投票
2 回答
1845 浏览

java - 如何完全关闭包含 servlet 的 undertow 服务器

我按照此处文档中的方法创建了一个带有 servlet 部署的 undertow 服务器:

http://undertow.io/documentation/servlet/deployment.html

我现在正试图停止 servlet 中的服务器和应用程序。

调用server.stop()使服务器在指定端口上不可用,但是当我server.start()再次调用时,应用程序立即可用(如果它已停止,则需要一些时间才能重新启动)。我还可以看到调用时没有释放服务器的内存server.stop。我尝试了各种组合,包括deploymentManager.undeploy()以相同的效果调用所有组合。

我已经在文档中搜索了任何线索,但结果都是空的。我想知道其他人是否有任何线索?以下是当前状态的源代码(请注意,我不是 Java 开发人员,所以会有很多花哨的东西):

0 投票
1 回答
392 浏览

undertow - undertow-core 不需要的依赖项

我可以得到较少依赖的undertow-core吗?

如果我得到了undertow核心的依赖项,我得到了所有这些罐子,这些罐子是运行只提供3个简单页面的http服务器所必需的吗?

jdeparser是一个 java 源代码生成器,jboss-classfilewriter似乎是编写类,用于管理日志的 5 个 jars !java中的小型服务器所期望的是一个具有最小依赖关系的jar,但它似乎给了我一些我不需要的依赖关系

0 投票
1 回答
952 浏览

clojure - Clojure Immutant 2 服务器 Undertow;如何处理http POST?

将以下行放入 mycompojure defroutesclojure-paypal-ipn调用这两个处理函数。

如何POST在 Immutant 中处理请求?

我将 Immutant 2.0 与 Clojure 1.7-beta1 一起使用,并构建了 Immutant 功能演示。尽管我正在尝试使用 PayPal IPN,但使用 cURL 直接发布会产生相同的结果。

0 投票
0 回答
875 浏览

clojure - Compojure 处理程序朋友/身份验证吃掉 POST 请求的主体

如何:body从 compojure 安全地获取 InputStream 的内容?

有关背景,请参阅相关但不同的问题。

我正在尝试使用 Friend 验证我的环路由,compojure handler/site但是当我尝试:body从 httpPOST请求(这是 Java InputStream)读取时,它已关闭:

如果我删除处理程序,问题就会消失。我找到了一种可能的解决方案,称为土拨鼠,它可以捕获并存储所有请求。我正在使用的库,clojure-paypal-ipn最初reset是在 stream 上Undertow调用的,但是(或者实际上是其他几个 Java/Clojure 服务器)不支持它,所以我解决了它。

这是与 compojure 的作者 weavejester 的相关讨论。

以下是我的一些代码片段:

这里是payment.cljpaypal-data现在paypal-error只是pprint输入)的胆量:

0 投票
0 回答
148 浏览

jboss - Wildfly 8.2.0.Final 中定期创建的巨大垃圾

每隔几分钟,wildfly 就会产生巨大的垃圾。虽然 Full GC 能够回收内存,但这会导致频繁的 full gcs,因为由于创建的对象数量的增加,堆被占用。我们可以在 60 个用户的 Jmeter loadtest 中重现此问题。Jboss 7.1.1Final 中并非如此。

在分析堆转储后,创建了巨大的字符数组,它们不是被 Minor GC 收集的垃圾。char 数组的传入引用表明它们对 io.undertow.servlet.spec.HttpServletRequestImpl 具有有效引用。但是完整的 gc 能够恢复内存。不知道为什么 io.undertow.servlet.spec.HttpServletRequestImpl 中的属性没有被次要 gc 的 gced。

“org.apache.struts.tiles.ComponentContext”由 io.undertow.servlet.spec.HttpServletRequestImpl 保存在属性 Map 中。org.apache.struts.tiles.ComponentContext 包含一个大字符数组。我们怀疑undertow有问题。
从附加的 Eclipse MAT 获得的图像 https://www.dropbox.com/sh/qgsitzb7x27j8kc/AABoQwR1qPwTPiDtO6B0_Pm7a?dl=0

0 投票
1 回答
3620 浏览

java - 使用 Spring Boot 对 Undertow/Wildfly 进行文件上传和可接受的错误处理

我们有一个在 Undertow 和 SpringBoot 上运行的项目,并且正在尝试添加文件上传。第一次尝试成功,文件已通过使用 绑定到适当的 Bean,StandardServletMultipartResolver并使用application.properties. 然而,我们在错误处理方面遇到了可怕的困难。我们通过将标准解析器配置为 100MB 并使用CommonsMultipartResolver. 然后我们添加了一个像这样的过滤器

请求包装器:

-@Controller方法然后检查过大的文件并将结果添加到BindingResult,这很好,除了文件没有绑定到 bean 的事实。事实证明CommonsMultipartResolver,当尝试解析请求时,会抛出一个MalformedStreamExceptionin ItemInputStream.makeAvailable(),它总是返回 Message String ended unexpectedly

所以我们重新使用StandardServletMultipartResolver,并且能够RuntimeException很好地捕捉它抛出的问题,但是即使一个文件超出其大小边界,它也绝对不会提供任何表单数据。

我们绝对被难住了,因为不管解析器是否懒惰地工作。如果有人对如何解决此问题有任何进一步的想法,欢迎提出答案=)

更多参考代码:

提取自WebAppInitializer

从控制器中提取:

processUpload()到目前为止还没有任何功能,这就是为什么我没有在这里包括它。

从 Form-Backing Bean 中提取:

如前所述,这不是整个代码,而是这个特定问题的必要代码。上传超大文件时抛出的异常是:

或提到的FileUploadBase.FileSizeLimitExceedeException

最后但并非最不重要的一点是表单页面的摘录

如果您在此处跟踪问题,您应该已经意识到我们已经尝试了几种可能的解决方案,大多数来自这里。现在,过滤器捕获RuntimeException并检查IOException原因,而且大小不再设置在application.properties

任何帮助或建议都将非常感激。

更多信息

因此,我调试StandardServletMultipartResolver并发现它使用 ISO-8859-1-charset 进行解析。这确实产生了预期的效果,即使页面是 UTF-8 编码的并且请求对象也具有 UTF-8-Charset。我一直在尝试使用这样的过滤器强制 ISO-Charset

但是,由于某种原因,CommonsMultipartResolver找到了一个 UTF-8 编码的请求对象,所以要么这个编码不起作用,要么我犯了另一个我没有看到的错误。

我还试图找到抛出异常的确切时刻,以自己扩展类并确保保留已解析的表单数据,但到目前为止无济于事。

更多信息

正如此处另一个线程所建议的那样,我尝试在请求中强制使用 ISO-8859-1 字符集。起初,这完全绕过CommonsMultipartResolver并弄乱了我的文本,现在它过滤到正确的解析器,但这仍然表明多部分数据中没有文件。仅供参考,我使用的过滤器类:

从中制作了一个 Bean,并将 multipartResolver()-Bean 的名称更改为 filterMultipartResolver()

0 投票
2 回答
1873 浏览

resteasy - HTTP Handler 和 Resteasy 部署与 undertow 和 resteasy

我正在尝试同时运行 HTTPServer 和 REST 处理程序。一次只能工作一个,不能同时工作。我需要提供 html 页面和 api。

这是我的代码。

0 投票
3 回答
1219 浏览

nio - 如何在 apache 基准测试中避免 Undertow Connection RESET?

使用 apache 基准测试 100K 请求 20K 并发用户:

下面是 Undertow(版本 1.2.6 + xnio-api 3.3.1)PingServer:

所有需要的 linux 内核套接字和通过 sysctl 进行的线程设置都已经完成。这就是为什么它可以毫无问题地对 20k 用户执行第一个 90K 请求的原因。