问题描述
我们正在使用SELECT
并且我们有2个spring-boot微服务正在作为对wildfly的战争而部署
- service-a.war
- service-b.war
我们在Wildfly-17.0.1
下的两个服务中都有jboss-web.xml
service-a.war
src/main/webapp/WEB-INF
service-b.war
<jboss-web>
<context-root>/</context-root>
<virtual-host>default-host</virtual-host>
</jboss-web>
standalone.xml
<jboss-web>
<context-root>/</context-root>
<virtual-host>b-host</virtual-host>
</jboss-web>
别名为机器名称
在 server.log 中,当两个应用程序均已部署时,我们会看到以下消息
<subsystem xmlns="urn:jboss:domain:undertow:9.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other" statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}">
<buffer-cache name="default" />
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true" />
<https-listener name="https" socket-binding="https" security-realm="UndertowRealm" enable-http2="true" />
<host name="default-host" alias="alias" default-web-module="service-a.war" />
<host name="b-host" alias="alias" default-web-module="service-b.war" />
</server>
...
</subsystem>
但是,当我们尝试访问这两种服务时,只有一项服务似乎可以正常工作,而其他服务可以提供
...
Registered web context: '/' for server 'default-server'
...
Registered web context: '/' for server 'default-server'
我们尝试提供不同的上下文根,我们在日志中看到了
<html><head><title>Error</title></head><body>404 - Not Found</body></html>
当我们为两个主机提供不同的别名时,它将起作用
为什么给不同的主机使用相同的别名不起作用?
解决方法
我认为,您在jboss-web.xml中作为虚拟主机放置的字符串必须与独立配置文件中的别名(而不是名称)匹配
代替
<host name="b-host" alias="alias" default-web-module="service-b.war" />
尝试:
<host name="vhost2" alias="b-host" default-web-module="service-b.war" />