问题标签 [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 投票
3 回答
3411 浏览

java - 压缩 Undertow 服务器响应

我有一个程序化的 Undertow 服务器设置。静态内容也由 Undertow 提供,没有反向代理。Undertow 启动的 Java 代码如下所示:

我想知道在 Undertow 中一个 gzip 服务器如何响应?

谢谢,维塔利。

0 投票
1 回答
273 浏览

jboss - 使用多个上下文将 Immutant 部署到 WildFly

我有一个带有 Immutant (Clojure) 的 Undertow Web 服务器,我main-看起来像这样:

当不在 WildFly 计数器中运行时,它工作得很好: localhost:8080/ 映射到应用程序路由, localhost:8081/billing 到计费路由。但是,当我作为 ROOT 部署到 WildFly 时,我只能让一个上下文工作,而不能同时工作。我已经尝试了 :path / :port 参数的所有组合。WildFly 日志包括:

那么如何让 Undertow 注册两个上下文呢?

0 投票
1 回答
696 浏览

java - undertow 代理倾销请求和响应机构

要将 undertow 用作代理服务器来跟踪所有流量(用于调试目的),我目前正在使用这样的代码段:

这已经转储了所有请求和响应标头。我正在寻找的是一种转储请求和响应正文的方法。关于如何结合 ProxyHandler 实现这一点的任何想法?

0 投票
1 回答
1267 浏览

java - Undertow 中的图像/媒体 MIME 类型响应

我一直在努力寻找一种在 Undertow 中提供 .jpeg、.png 或其他内容的方法。发送 byte[] 将不起作用,并且由于 Undertow 是非阻塞的,因此我不想通过通常的操作将文件写入输出:

还有其他方法可以实现吗?我还使用 Undertow 的默认 Base64 库在 Base64 中对图像进行了编码,但也没有用。

编辑:提供一些代码:这是我对文件进行编码的方法。它适用于 .js、.html 和其他文本文件,但不适用于图像。不过,编码是有效的,所以我的问题是,当我把它发回给请求的人时,我是否做错了什么。

这就是我的回应方式:(为stackoverflow目的硬编码)

我在下流方面没有任何例外。图片只是不会显示在浏览器上。浏览器说它无法解码图像..

谢谢。

0 投票
1 回答
1732 浏览

java - 具有不同嵌入式服务器的 Spring Boot WAR 大小

我正在对 spring-boot 进行一些实验,我意识到当我使用嵌入式 Tomcat 服务器时,生成的 WAR 大小比我使用 Jetty 甚至具有相同其余依赖项的 Undertow 服务器时要小。

这怎么可能?... 与 tomcat 相比,假设 Undertow 和 Jetty 应该是超轻量级的。

尺寸为:

雄猫~18Mb

暗流 ~21Mb

码头~24Mb

它们中的任何一个对我来说都太大了,因为这是虚拟的 REST 端点。这些是我的依赖项:

0 投票
1 回答
187 浏览

javadoc - Undertow javadoc - 在哪里下载或浏览?

我试过行家;1.0、1.1 和 1.2,但这些似乎都没有发布的 javadoc 工件。

快速入门指南(称为“文档”)是指 javadoc,所以我猜它应该存在?也许可以在某个地方进行在线浏览?

0 投票
1 回答
2478 浏览

url-rewriting - 使用 undertow 文件处理程序重写 URL

我目前正在尝试对通过本地文件系统的文件处理程序传递的内容使用 URL 重写。似乎没有这方面的文档和/或功能。我想我可以使用 war 文件正常工作(如本论坛https://developer.jboss.org/message/915980中所回答),但不幸的是这对我的东西不起作用。

我的配置看起来像这样

我试图重建我的 docroot,它看起来像一个暴露的 .war 文件,所以我可以添加一个WEB-INF/undertow-handler.conf文件,其中包含以下规则:

regex['/Deploy/stuff/laptop/windows/(.*)/update.xml'] -> rewrite['/Deploy/stuff/laptop/windows/new-update.xml']

但是这个文件和/或规则似乎被明显地忽略了。

任何帮助是极大的赞赏。

0 投票
0 回答
810 浏览

windows - JavaScript WebSocket onMessage 事件在收到一定数量的数据之前不会被触发

我目前正在使用 JavaScript 中的 WebSockets 遇到这种奇怪的行为,我无法找出原因,这让我发疯了。我希望这里有人可以帮助我找出到底发生了什么。

场景如下:

我有一个带有 Web 服务器 (io.Undertow) 的 Java 应用程序,它通过 HTTP 为连接客户端(在本例中为 Chrome 或 Firefox)提供所需的资源。客户端然后打开到服务器的 WebSocket 连接(相应浏览器的本机 JavaScript Websocket API),服务器启动一个新的 WebSocket 会话 (javax.websocket.Session) 进行通信。然后,在某些特定事件的情况下,服务器通过提到的 WebSocket 连接向连接的客户端通知这些事件,每个事件一条消息。到目前为止,一切都很好...

问题:

当在(重新)建立 WebSocket 连接之后发生此类事件时,服务器按预期正确发送消息,但客户端(Chrome 和 Firefox)似乎以某种方式缓冲传入的消息并且不会触发 onMessage 事件WebSocket API,直到接收到总数据量为 8187 字节。(此外:在我看来,这是一个奇怪的数字;我是否在这里遗漏了一些标头字节?)当突然到达这一点时,所有收到的消息都会立即处理,并且同时为所有这些消息触发 onMessage 事件。之后,连接工作正常,每个事件都会触发 onMessage 事件。

还有一点要提一下:我的两个同事的系统上没有出现这个问题;在他们的系统上,事件从一开始就被正确触发。所以它必须是特定于我的系统的东西。

有谁知道为什么我的系统会发生这种情况?是否有任何系统、防火墙、浏览器、其他设置会以这种方式影响浏览器?

Chrome 提供的标头:

请求标头:

响应标头:

版本信息:

  • 铬版:41.0.2272.101 m
  • 火狐版本:36.0.1
  • 操作系统:Windows 8.1 Pro
  • 同事操作系统:Windows 8.1 Pro / Linux Ubuntu GNOME 14.04.1

提前感谢您的任何建议。

克里斯

0 投票
3 回答
12021 浏览

java-8 - Wildfly 8.2/undertow 读取超时

我最近使用 java1.8 将我的项目从 jboss4 迁移到 wildfly 8.2。我有一个使用 SAAJ 的 Web 服务调用,它在命令行中运行良好。但是当它从 wildfly8.2 中运行时,它会在 60 秒后超时。我从 jboss 论坛中读到读取请求的默认超时时间为 60 秒。所以我将standalone.xml中的配置更改为

但它仍然会在 60 秒后超时,并出现以下错误。

我在这里读到我可以设置超时,但我不必这样做,因为程序运行良好而不会从命令行超时,所以它不是 saaj 超时问题。我很确定 wildfly/undertow 出于某种原因正在计时读取套接字的时间。

任何帮助表示赞赏。

- -更多细节 - -

目前我正在使用wildfly8.2附带的undertow 1.1 Final。我尝试将 undertow 升级到 1.2 beta,结果仍然相同。

调用失败:

wildfly8.2 中的 Undertow 配置:

更多细节:

我在 wildfly9.0BETA2 下尝试过,结果相同。如果有帮助,只想分享更多细节。SAAJ webservice 调用是从在 wildfly8.2 中运行的 servlet 进行的,目标 WSDL 在另一个 jboss 服务器上。所以基本上,来自 wildlfy 的客户端 Web 服务调用会在 60 秒内超时,但是如果我从独立的 Java 客户端运行相同的调用并且相同的代码可以正常工作。我什至在jboss 社区上开了一个帖子,但还没有听到任何消息

0 投票
1 回答
413 浏览

java - 非常慢的 MySQL 读取性能

我在 MySQL 中有下表:

我在这个表中有 2.1 亿行。我的 Undertow 服务器(Java 应用程序)发送带有以下选择查询的 GET:

我使用用户 ID 和时间戳来获取结果,因为它是我唯一可用于测试数据库的数据。该数据库用于只读目的,没有写入/更新。

我还在桌子上使用了索引。

现在,即使在使用分区和应用主键之后,也需要将近 1 秒才能得到正确的响应,这非常长。我的应用程序的吞吐量必须至少为每秒 6000 个请求。

硬件配置:

我正在运行 Undertow 服务器(前端)来查询 Amazon M1.large 实例上的 Mysql 服务器(后端)。为了避免延迟,我在同一个实例上运行两台服务器。

谁能帮我吗?我的想法不多了。谢谢!

更新

Undertow 前端服务器的时间

耗时1.3秒