问题标签 [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.
java - Wildfly Undertow 请求在 Web 服务上失败 HttpServerExchange
我正在尝试访问在我的 Wildfly 实例上运行的 Web 服务。Web 服务被注释为 Post 并接受 JSON。当我尝试调用该服务时,我的 Wildfly 会引发 Nullpointerexception。
实际的堆栈跟踪如下所示:
我真的不明白是什么引起了 Nullpointerexception,因为我对 Wildfly 开发不是很熟悉。
java - 在 Undertow 上关闭 MYSQL 连接
我有以下代码从 Undertow 连接到远程 MYSQL 服务器。
Undertow 服务器运行一段时间后,我收到以下错误:
我想知道如何继续关闭与
- mysql数据源
- 联系
- 陈述
应用程序有频繁的读取请求(每秒 10000 次读取请求)我应该如何继续?
我想mysql.getConnection().close();
在设置交换标头之前使用权利,但需要确保更改生产系统上的代码。
谢谢!
java - 如何完全关闭包含 servlet 的 undertow 服务器
我按照此处文档中的方法创建了一个带有 servlet 部署的 undertow 服务器:
http://undertow.io/documentation/servlet/deployment.html
我现在正试图停止 servlet 中的服务器和应用程序。
调用server.stop()
使服务器在指定端口上不可用,但是当我server.start()
再次调用时,应用程序立即可用(如果它已停止,则需要一些时间才能重新启动)。我还可以看到调用时没有释放服务器的内存server.stop
。我尝试了各种组合,包括deploymentManager.undeploy()
以相同的效果调用所有组合。
我已经在文档中搜索了任何线索,但结果都是空的。我想知道其他人是否有任何线索?以下是当前状态的源代码(请注意,我不是 Java 开发人员,所以会有很多花哨的东西):
undertow - undertow-core 不需要的依赖项
我可以得到较少依赖的undertow-core吗?
如果我得到了undertow核心的依赖项,我得到了所有这些罐子,这些罐子是运行只提供3个简单页面的http服务器所必需的吗?
jdeparser是一个 java 源代码生成器,jboss-classfilewriter似乎是编写类,用于管理日志的 5 个 jars !java中的小型服务器所期望的是一个具有最小依赖关系的jar,但它似乎给了我一些我不需要的依赖关系。
clojure - Clojure Immutant 2 服务器 Undertow;如何处理http POST?
将以下行放入 mycompojure
defroutes
以clojure-paypal-ipn
调用这两个处理函数。
如何POST
在 Immutant 中处理请求?
我将 Immutant 2.0 与 Clojure 1.7-beta1 一起使用,并构建了 Immutant 功能演示。尽管我正在尝试使用 PayPal IPN,但使用 cURL 直接发布会产生相同的结果。
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.clj
(paypal-data
现在paypal-error
只是pprint
输入)的胆量:
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
java - 使用 Spring Boot 对 Undertow/Wildfly 进行文件上传和可接受的错误处理
我们有一个在 Undertow 和 SpringBoot 上运行的项目,并且正在尝试添加文件上传。第一次尝试成功,文件已通过使用 绑定到适当的 Bean,StandardServletMultipartResolver
并使用application.properties
. 然而,我们在错误处理方面遇到了可怕的困难。我们通过将标准解析器配置为 100MB 并使用CommonsMultipartResolver
. 然后我们添加了一个像这样的过滤器
请求包装器:
-@Controller
方法然后检查过大的文件并将结果添加到BindingResult
,这很好,除了文件没有绑定到 bean 的事实。事实证明CommonsMultipartResolver
,当尝试解析请求时,会抛出一个MalformedStreamException
in 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()
resteasy - HTTP Handler 和 Resteasy 部署与 undertow 和 resteasy
我正在尝试同时运行 HTTPServer 和 REST 处理程序。一次只能工作一个,不能同时工作。我需要提供 html 页面和 api。
这是我的代码。
nio - 如何在 apache 基准测试中避免 Undertow Connection RESET?
使用 apache 基准测试 100K 请求 20K 并发用户:
下面是 Undertow(版本 1.2.6 + xnio-api 3.3.1)PingServer:
所有需要的 linux 内核套接字和通过 sysctl 进行的线程设置都已经完成。这就是为什么它可以毫无问题地对 20k 用户执行第一个 90K 请求的原因。