如何从其他系统访问一个系统上的 moqui Web 应用程序 运行

How to access the moqui web application running on one system from other system

我在 system1 上有 moqui 运行,可以使用 URL http://localhost:8080/Login 访问。 尝试从其他 system2(在网络中)访问它,用 URL 将 'localhost' 替换为第一个系统的 IP;它显示第一个(登录)页面,但之后,当从 system2 提交页面时,URL 中的 IP 自动更改为 'localhost'。我查看了这本书并搜索了框架代码,但找不到与此相关的内容。

这可能是什么原因造成的,应用程序中是否有任何设置可以解决此问题?

为 Web 应用程序配置主机和端口分为两部分。一个是针对 servlet 容器的,所以它知道要听什么,另一个是在 Moqui 框架本身中,所以它知道在生成 URL 时使用什么。听起来您遇到的问题是第二代 URL 代。

在您的运行时 Moqui XML Conf 文件中应该有一个 webapp 元素,有点像 MoquiProductionConf.xml 文件中的这个:

<webapp name="webroot" http-port="" http-host=""
        https-port="" https-host="" https-enabled="false"
        content-prefix-secure="" content-prefix-standard="" cookie-domain="">
    <root-screen host=".*" location="component://webroot/screen/webroot.xml"/>
</webapp>

当没有指定@http-host/etc 属性时,将使用来自 HttpServletRequest 对象的值。这些将根据您用于部署 Moqui 框架的 servlet 容器的设置而有所不同。

要将其设置为明确的内容,您可以使用 http-host,如果需要,还可以使用 https-host、http-port 和 https-port 属性。对于虚拟主机支持,http-host 和 https-host 属性应该为空,并且 servlet 容器(以及它前面的任何 proxy/etc)应该配置为通过请求的主机名。