You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Open Liberty中使用springBootApplication标签通过虚拟主机隔离请求

解决Spring Boot应用在Liberty中配置虚拟主机的问题

解决方案1:直接通过springBootApplication标签关联虚拟主机

无需嵌套web-bnd,直接利用标签原生的virtualHost属性绑定,配置如下:

<springBootApplication id="App-app" location="App-0.0.1-SNAPSHOT.jar" virtualHost="mysitevirtualhost">
    <applicationArgument>--server.servlet.context-path=/App/</applicationArgument>
</springBootApplication>

这种方式最简洁,直接跳过模块名匹配的问题,让虚拟主机规则直接应用到当前Spring Boot应用。

解决方案2:使用web-bnd正确匹配模块名

如果必须使用web-bnd配置,需要遵循Liberty对Spring Boot应用的模块名规则:

  • 默认模块名为springBootModule
  • 也可以通过moduleName属性自定义模块名

配置示例(使用默认模块名)

<springBootApplication id="App-app" location="App-0.0.1-SNAPSHOT.jar">
    <applicationArgument>--server.servlet.context-path=/App/</applicationArgument>
    <web-bnd moduleName="springBootModule">
        <virtual-host name="mysitevirtualhost" />
    </web-bnd>
</springBootApplication>

配置示例(自定义模块名)

<springBootApplication id="App-app" location="App-0.0.1-SNAPSHOT.jar" moduleName="App-develop-SNAPSHOT">
    <applicationArgument>--server.servlet.context-path=/App/</applicationArgument>
    <web-bnd moduleName="App-develop-SNAPSHOT">
        <virtual-host name="mysitevirtualhost" />
    </web-bnd>
</springBootApplication>

失败原因说明

你之前使用通用application标签时,Liberty对Spring Boot jar的模块名解析逻辑与EAR应用不同,日志中出现的0-0是异常解析的结果,并非有效模块名,因此无法匹配web-bnd配置。而使用springBootApplication标签时,Liberty有明确的模块名规则,要么用默认值,要么主动指定,就能完成正确绑定。

内容的提问来源于stack exchange,提问作者Noe Rodriguez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 08:46:33