我的 Wildfly 设置中有多个虚拟主机,但我无法让它们使用自定义 servlet 容器,而是全部使用默认容器。我特别需要这样做来自定义会话cookie,以便各个站点在各自的端口上工作,而不会破坏其他人的会话。
独立的.xml:
<subsystem xmlns="urn:jboss:domain:undertow:1.2">
<server name="default-server">
<http-listener name="default" socket-binding="http"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
</host>
</server>
<server name="server1" servlet-container="servlet-container1">
<http-listener name="listener1" socket-binding="http1"/>
<host name="host1" alias="localhost">
<location name="/" handler="welcome-content" />
</host>
</server>
<server name="server2" servlet-container="servlet-container2">
<http-listener name="listener2" socket-binding="http2"/>
<host name="host2" alias="localhost">
<location name="/" handler="welcome-content"/>
</host>
</server>
...
<servlet-container name="default">
<jsp-config/>
</servlet-container>
<servlet-container name="servlet-container1">
<jsp-config/>
<session-cookie name="MYSESSION1"/>
</servlet-container>
<servlet-container name="servlet-container2">
<jsp-config/>
<session-cookie name="MYSESSION2"/>
</servlet-container>
...
</subsystem>
相应的 jboss-web.xml 文件具有以下内容:
<server-instance>server1</server-instance>
<virtual-host>host1</virtual-host>
<servlet-container>servlet-container1</servlet-container>
和
<server-instance>server2</server-instance>
<virtual-host>host2</virtual-host>
<servlet-container>servlet-container2</servlet-container>
既没有指定 server 标记的 servlet-container 属性,也没有在 jboss-web.xml 中指定 servlet-container 标记似乎有任何效果,并且始终使用默认的 servlet 容器。
有什么我想念的吗?或者在某个地方是否存在阻止 servlet 容器成为默认容器的错误?