1

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

(run
  (-> routes/app
    wrap-something-app-specific
    wrap-params)
  (options
    {:path "/" :port 8080}))

(run
  (-> routes/billing
    wrap-something-billing-specific)
  (options
    {:path "/billing" :port 8081
     :worker-threads 4}))

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

13:07:46,295 INFO  [org.projectodd.wunderboss.web.Web] (MSC service thread 1-12) Registered web context /billing
13:07:46,308 INFO  [org.projectodd.wunderboss.web.Web] (MSC service thread 1-12) Registered web context /
................
13:07:46,325 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-12) JBAS017534: Registered web context: /

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

4

1 回答 1

2

这不是一个解决方案,但它可以为您提供有关正在发生的事情的提示。从 Immutant/WildFly文档中,看起来您的问题可能来自部署和运行 WildFly 时的此限制:

在 WildFly 中运行时,immutant.web/run 的 :host 和 :port 选项会被静默忽略,因为您的处理程序安装在 WildFly 的内部 Undertow 服务器上,并绑定到为其配置的任何主机/端口。

于 2015-02-11T11:19:56.103 回答