3

我的 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 容器成为默认容器的错误?

4

0 回答 0