JBoss EAP 7:在 standalone.xml 之外禁用标签池

问题描述

我正在将一个遗留应用程序从 Weblogic 迁移到 JBoss EAP 7。该应用程序包含自定义标签,这些标签在创建时没有考虑到标签池(例如,它们的内部状态没有在 doEndTag 中正确清理)。

根据 RedHat 文档 https://access.redhat.com/solutions/1186363,在 EAP 6 中有一个需要在 web.xml 中设置的参数:

<servlet>
  ...
  <init-param>
     <param-name>enablePooling</param-name>
     <param-value>false</param-value>
  </init-param>
  ...
</servlet>

不幸的是,在 EAP 7 中,这只能通过配置 undertow 子系统来实现。

<subsystem xmlns="urn:jboss:domain:undertow:4.0">
    ...
    <servlet-container name="default">
        <jsp-config tag-pooling="false"/>
        <websockets/>
    </servlet-container>

我的问题是我的应用程序需要在我无法修改或请求修改的 Docker 映像上运行,因为它旨在在可能与标签池完美配合的不同应用程序之间共享。因此,编辑 standalone.xml 或其他服务器范围的配置文件是不可行的。 我能做什么:

  1. 我提供了 war/ear 文件,因此我可以修改其中的任何内容(例如 web.xml、jboss-web.xml、java 代码等)。如果 EAP 6 解决方案适用于 EAP 7,那就完美了
  2. 我可以编辑系统属性
  3. 我可以编辑环境变量

考虑到这些限制,有没有办法禁用标签池?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)