Wildfly 热部署太慢

Tor*_*sen 0 java netbeans glassfish wildfly

我决定使用 Wildfly 8.2.0-Final 作为应用程序服务器,而不是 Glassfish 4.1,因为我听说它的速度不错。

我做的第一件事是创建一个普通的 Java EE Web 应用程序(目前基于 ant,但我将考虑使用 Maven)。NetBeans 8.0.2 中启用了保存时编译。

然而,令我沮丧的是,如果我更改静态内容或更改简单 REST 服务的内容,例如:

@GET
@Produces("text/plain")
public String getText() {
    return "Foobar";
}
Run Code Online (Sandbox Code Playgroud)

更改变得可见之前需要几秒钟的时间。对于 Java 类,我几乎可以忍受这一点,但对于静态内容,我希望在我进行大量增量小更改时立即获得反馈。

这在 Glassfish 上通常需要大约 200 毫秒(完全相同的代码),所以我不明白它在 Wildfly 上慢了 10 倍?

Mik*_*ike 5

我从描述中假设您正在部署到standalone/deployments. 部署扫描器会拾取该文件夹中所做的更改,幸运的是,部署扫描器是可配置的。

文档中有很好的描述,但重要的是您需要降低扫描间隔。

如果您以前从未使用过 JBoss CLI,您可能有兴趣知道它有一个 GUI 模式。在 bin 目录中,调用 jboss-cli.sh 脚本,其中包含-c连接到本地服务器的选项和--gui启动 GUI 的选项:

<WFLY_HOME>/bin/jboss-cli.sh -c --gui
Run Code Online (Sandbox Code Playgroud)

JBoss CLI 图形用户界面

如上图所示,您可以展开部署扫描器子系统,然后右键单击扫描间隔属性并选择“写入属性”以打开下面的对话框。

降低数字(500 毫秒 = 半秒),单击“确定”,并记住单击右上角的“提交”以实际应用更改。